簡體   English   中英

在Stitcher類中將composePanorama與OpenCV-Python綁定一起使用

[英]Using composePanorama in Stitcher class with OpenCV-Python bindings

我試圖估計一些圖像的變換並使用python中的stitcher.estimateTransform()stitcher.composePanorama()進行stitcher.composePanorama() 估計轉換后,composePanorama給出以下錯誤:

pano不是numpy數組,也不是標量

我試圖使用cv2.fromarray(left)將NumPy Array轉換為Mat對象,但它僅適用於cv,不適用於cv2。 因此,如何在Cv2中將此numpy轉換為MAT數組。 我找不到將composePanorama與python綁定一起使用的任何示例。 對於此錯誤的任何解決方案,或使用帶有OpenCV-Python綁定的stitcher.estimateTransform()示例,將不勝感激。

注意 :盡管OpenCV-Python綁定中的help(cv2.createStitcher())類不完整(由於自動生成的綁定),但help(cv2.createStitcher())演示它包含composePanorama()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])

我也有同樣的問題。 從我可以看到, composePanorama有兩個重載。

CV_WRAP Status composePanorama(OutputArray pano);
Status composePanorama(InputArrayOfArrays images, OutputArray pano);

這是我們需要的第二個重載,因為pano是輸出參數,在Python中將其作為返回值給出。 不幸的是,第二個重載沒有用CV_WRAP標記,這將使其可用於Python綁定。 因此,我只能看到的解決方案是:

  • 使用其他縫合方式
  • 瀏覽缺少的composePanorama實現的C ++代碼,並在Python中自己重新實現
  • 在Open CV Github上注冊問題,然后等待更新
  • 從源代碼自己構建Open CV並將功能標記為CV_WRAP (我不確定它實際上是否是如此簡單)
  • 使用C ++而不是Python

盡管如果其他人可以發布答案而不顯示上面的復雜任務的情況下如何在Python中實現此目標,我將感到非常高興。

要使用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了解更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM