AttributeError: 'module' object has no attribute

Ujjwal picture Ujjwal · Feb 11, 2014 · Viewed 15.7k times · Source

I am trying to get the depth map of two stereo images. I have taken the code from this documentation.

I get the following error:

Traceback (most recent call last):
  File "depth.py", line 9, in <module>
    stereo = cv2.createStereoBM(numDisparities=16, blockSize=15)
AttributeError: 'module' object has no attribute 'createStereoBM'

My code is:

import numpy as np
import cv2
from matplotlib import pyplot as plt

imgL = cv2.imread('tsukuba_l.png',0)
imgR = cv2.imread('tsukuba_r.png',0)

stereo = cv2.createStereoBM(numDisparities=16, blockSize=15)
disparity = stereo.compute(imgL,imgR)
plt.imshow(disparity,'gray')
plt.show()

I entered the Python line interpreter, and wrote the following code:

import cv2
help(cv2)

There is no function called createStereoBM in cv2.

Is the code wrong in the link provided at the top? I am using Python 2.7.3 in Ubuntu 12.04. Is it possible that the code is meant for Python 3 and above?

Please help.

Answer

Abhishek picture Abhishek · Apr 27, 2017

cv2.StereoBM_create(numDisparities=16, blockSize=15)

Try it. My opencv version is 3.2.

If you want to find any function working in opencv, you can try this

  1. import(cv2)
  2. help(cv2)