繁体   English   中英

AttributeError: 'module' 对象没有属性

[英]AttributeError: 'module' object has no attribute

我正在尝试获取两个立体图像的深度图。 我已经从这个文档中获取了代码。

我收到以下错误:

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'

我的代码是:

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()

我进入了Python行解释器,写了如下代码:

import cv2
help(cv2)

cv2没有名为createStereoBMcv2

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

请帮忙。

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

尝试一下。 我的 opencv 版本是 3.2。

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

  1. 导入(cv2)
  2. 帮助(cv2)

改用这个函数

stereo = cv2.StereoBM(cv2.STEREO_BM_BASIC_PRESET,ndisparities=16, SADWindowSize=15)

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

import numpy as np

import cv2

from matplotlib import pyplot as plt

imgL = cv2.imread('l.png',0)

imgR = cv2.imread('r.png',0)

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

disparity = stereo.compute(imgL,imgR)

plt.imshow(disparity,'gray')

plt.show()  

尝试使用此代码是您使用 open-cv 文档中的代码

您正在从主干(又名开发)文档中获取示例。 如果您没有使用主干版本,请尝试为您的正确版本查找示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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