gpt4 book ai didi

python - 在 Stitcher 类中使用 composePanorama 和 OpenCV-Python 绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 01:16:21 34 4
gpt4 key购买 nike

我正在尝试估计一些图像的变换,并使用 python 中的 stitcher.estimateTransform()stitcher.composePanorama() 来缝合它们。估计变换后,composePanorama 给出如下错误:

pano is not a numpy array, neither a scalar

我尝试使用cv2.fromarray(left)将NumPy数组转换为Mat对象,但它仅适用于cv,不适用于cv2。因此,我如何将此 numpy 转换为 cv2 中的 MAT 数组?我没有找到任何使用 composePanorama 与 python 绑定(bind)的示例。对于此错误的任何解决方案或使用 stitcher.estimateTransform() 与 OpenCV-Python 绑定(bind)的示例,我们将不胜感激。

注意:虽然 OpenCV-Python 绑定(bind)中的 Stitching 类并不完整(由于自动生成的绑定(bind)),但 help(cv2.createStitcher()) 表明它包含 composePanorama()estimateTransform()

注意:我可以使用 stitcher.stitch() 没有任何问题,但使用 stitcher.stitch() 对我没有帮助,因为我试图不计算主循环中每次迭代的变换。

我的简单代码:

leftStream = cv2.VideoCapture(0)
rightStream = cv2.VideoCapture(1)
left = leftStream.read()[1]
right = rightStream.read()[1]
st = cv2.createStitcher(False)
st.estimateTransform([left, right])
st.composePanorama([left, right])

最佳答案

要使用stitcher.estimateTransform()stitcher.composePanorama(),您需要

  1. 下载opencv https://github.com/opencv/opencv
  2. 导航到 opencv-master/modules/stitching/include/opencv2/stitching.hpp
  3. 在您希望能够在 Python 中调用的任何方法前面添加 CV_WRAP。在这种情况下,这些将是estimateTransform和composePanorama

然后构建 python 模块:

cd ~/opencv
mkdir build
cd build
cmake ../
make
sudo make install

然后将模块从安装位置移至虚拟环境。就我而言,这是/usr/local/lib/python3.7/site-packages/cv2。

参见https://www.pyimagesearch.com/2018/08/17/install-opencv-4-on-macos/https://docs.opencv.org/4.1.0/da/d49/tutorial_py_bindings_basics.htmlhttps://docs.opencv.org/4.1.1/da/df6/tutorial_py_table_of_contents_setup.html了解更多信息。

关于python - 在 Stitcher 类中使用 composePanorama 和 OpenCV-Python 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54314314/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com