Tôi có hai hình ảnh âm thanh nổi mà tôi muốn sử dụng để tính toán bản đồ độ sâu. Trong khi tôi tiếc là không biết C/C++, tôi biết python-- vì vậy khi tôi tìm thấy this tutorial, tôi đã lạc quan.Python/OpenCV: Lập bản đồ độ sâu từ hình ảnh stereo
Thật không may, hướng dẫn có vẻ hơi lỗi thời. Nó không chỉ cần được tinh chỉnh để chạy ở tất cả (đổi tên 'createStereoBM' thành 'StereoBM') nhưng khi nó chạy, nó không cho kết quả tốt, ngay cả trên ví dụ hình ảnh stereo được sử dụng trong hướng dẫn .
Dưới đây là một ví dụ:
import numpy as np
import cv2
from matplotlib import pyplot as plt
imgL = cv2.imread('Yeuna9x.png',0)
imgR = cv2.imread('SuXT483.png',0)
stereo = cv2.StereoBM(1, 16, 15)
disparity = stereo.compute(imgL, imgR)
plt.imshow(disparity,'gray')
plt.show()
Kết quả:
này trông rất khác với những gì tác giả của hướng dẫn đạt:
good result http://docs.opencv.org/trunk/_images/disparity_map.jpg
Tinh chỉnh thông số không cải thiện vấn đề. Tất cả tài liệu tôi đã có thể tìm thấy là cho phiên bản C ban đầu của mã openCV, không phải là tương đương với python-library. Rất tiếc là tôi không thể sử dụng điều này để cải thiện mọi thứ.
Mọi trợ giúp sẽ được đánh giá cao!
chỉ để ghi lại, hướng dẫn là từ tương lai (opencv3.0), nhưng có, đã lỗi thời. cho phiên bản 3.0 hiện tại, bạn phải sử dụng cv2.StereoBM_create() hoặc cv2.StereoSGBM_create(). – berak
cv2.StereoBM dường như tồn tại, nhưng sử dụng cv2.StereoBM_create() hoặc cv2.StereoSGBM_create() đưa ra một lỗi (lỗi thuộc tính). – jwdink
một lần nữa, bạn rõ ràng đang sử dụng opencv2.4, không phải là 3.0 – berak