AttributeError:“module”对象没有attribu

2024-04-25 14:33:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到两幅立体图像的深度图。我从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'

我的代码是:

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中没有名为“createsterobm”的函数。

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

请帮忙。


Tags: 代码pyimportas错误pltcv2module
3条回答

改用此函数

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

您可以找到此函数的文档here

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

试试看。我的opencv版本是3.2。

如果您想找到任何在opencv中工作的函数,可以尝试

  1. import(cv2)
  2. help(cv2)
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()  

尝试使用此代码是指您使用开放式简历文档中的代码

相关问题 更多 >