I tried to run code from the OpenCV docs for creating a disparity image from left and right stereo images, but it gives me an error. Here is the code I ran.
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()
I am getting an error in the line
stereo = cv2.createStereoBM(numDisparities=16, blockSize=15)
And this is the error
AttributeError: module 'cv2' has no attribute 'createStereoBM'
I have tried many other solutions previously listed on stackoverflow, github, and other forums but none of them seemed to work.
The link to the OpenCV documentation can be found here
Any help will be appreciated. Thanks.
stereo = cv2.StereoBM(numDisparities=16, blockSize=15)
? i.e. remove thecreate
prefix from the method name – Codicodicesdisparity = stereo.compute(imgL, imgR)
. The error readsTypeError: Incorrect type of self (must be 'StereoMatcher' or its derivative)
– Virelaycv2.StereoBM_create(numDisparities=16, blockSize=15)
? – WooldridgenumDisparities
to64
and got the result I wanted. – Virelay