两个输入图像都必须具有CV_8UC1功能错误

时间:2016-03-17 17:57:35

标签: python-2.7 opencv numpy

我打算从教程here做一个立体图像,但编译器报告错误cv2.createStereoBM,我发现它是OpenCV版本的问题。

我按thiscv2.createStereoBM更改为cv2.StereoBM。它运作良好,但以下代码:

disparity = stereo.compute(frame0,frame1)

显示错误:

  

两个输入图像必须在函数cv :: findStereoCorrespondenceBM中具有CV_8UC1

任何人都可以帮我吗?

环境是Python 2.7,OpenCV 2.4.11。

我的代码是:

cap0 = cv2.VideoCapture(0)
cap1 = cv2.VideoCapture(1)
while (cap0.isOpened() and cap1.isOpened()):
    ret0, frame0 = cap0.read()
    frame0_new=cv2.cvtColor(frame0, cv2.COLOR_BGR2GRAY)

    ret1, frame1 = cap1.read()
    frame1_new=cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)


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

    disparity = stereo.compute(frame0,frame1)

1 个答案:

答案 0 :(得分:3)

您应该使用转换为单一频道的帧,即类型CV_8UC1

disparity = stereo.compute(frame0_new, frame1_new)