AttributeError:'module'对象没有属性

Ujj*_*wal 8 python ubuntu opencv stereo-3d

我想要获得两个立体图像的深度图.我从http://docs.opencv.org/trunk/doc/py_tutorials/py_calib3d/py_depthmap/py_depthmap.html获取了代码

我收到以下错误:

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'
Run Code Online (Sandbox Code Playgroud)

我的代码是:

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()
Run Code Online (Sandbox Code Playgroud)

我进入了Python行解释器,并编写了以下代码:

import cv2
help(cv2)
Run Code Online (Sandbox Code Playgroud)

cv2中没有名为"createStereoBM"的函数.

顶部提供的链接中的代码是否有误?我在Ubuntu 12.04中使用Python 2.7.3.该代码是否适用于Python 3及更高版本?

请帮忙.

you*_*san 11

请改用此功能

stereo = cv2.StereoBM(cv2.STEREO_BM_BASIC_PRESET,ndisparities=16, SADWindowSize=15)
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到此功能的文档


小智 11

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

试试吧.我的opencv版本是3.2.

如果你想找到在opencv中工作的任何函数,你可以试试这个

  1. 进口(CV2)
  2. 帮助(CV2)