我尝试运行OpenCV文档中创建左右立体图像视差图的代码,但是出现了错误。以下是我运行的代码:
import cv2
from matplotlib import pyplot as plt
imgL = cv2.imread(r'D:\left.png', 0)
imgR = cv2.imread(r'D:\right.png', 0)
stereo = cv2.createStereoBM(numDisparities=16, blockSize=15)
disparity = stereo.compute(imgL, imgR)
plt.imshow(disparity, 'gray')
plt.show()
我在这一行中遇到了一个错误。
stereo = cv2.createStereoBM(numDisparities=16, blockSize=15)
这是错误信息
AttributeError: module 'cv2' has no attribute 'createStereoBM'
我之前试过很多其他在stackoverflow、github和其他论坛上列出的解决方案,但它们似乎都不起作用。
可以在这里找到OpenCV文档的链接。
任何帮助都将不胜感激。谢谢。
stereo = cv2.StereoBM(numDisparities=16, blockSize=15)
吗?也就是说,从方法名中删除create
前缀。 - wpercydisparity = stereo.compute(imgL, imgR)
中出现错误。错误信息是TypeError: Incorrect type of self (must be 'StereoMatcher' or its derivative)
。 - ntdcv2.StereoBM_create(numDisparities=16, blockSize=15)
怎么样? - Oluwafemi SulenumDisparities
的值改为了64
,得到了我想要的结果。 - ntd