简体   繁体   中英

AttributeError: module 'cv2' has no attribute 'createStereoBM'

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.

As oluwafemi-sule mentioned in the comments you just need to use cv2.StereoBM_create instead of cv2.createStereoBM and it will work

在此处输入图片说明

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM