我正在通过wifi从无人机摄像头捕获图像。以下是我在Python中使用OpenCV函数的代码(其他OpenCV任务在相同的输入图像下也可以正常工作),并且出现错误
Both input images must have CV_8UC1 in function 'cv::StereoBMImpl::compute'
if frameno == 1:
imagen = cv2.cvtColor(numpy.array(frame1.to_image()), cv2.COLOR_RGB2BGR)
frameno = frameno+1
print frameno
if frameno == 0:
imageo = cv2.cvtColor(numpy.array(frame1.to_image()), cv2.COLOR_RGB2BGR)
frameno = frameno+1
print frameno
stereo = cv2.StereoBM_create(numDisparities = 16, blockSize = 17)
disparity = stereo.compute(imagen,imageo)
我在stereo.compute
函数中遇到错误。
好吧,我使用相同的frame1.to_image()
来生成其他OpenCV函数的输入帧,并且在那儿工作正常,但是当我开始尝试立体声视差代码时,它正在生成错误,我不知道为什么。我在这里看到另一个线程
CV_8U1 error stackoverflow,但那个人在使用转换后的图像后并没有遇到问题,但是我遇到了错误。请让我知道我应该在这里做什么。
答案 0 :(得分:0)
仅注意到颜色转换应为COLOR_RGB2GRAY。解决了这个问题。
答案 1 :(得分:0)
对于复制和粘贴:
grayLeft = cv.cvtColor(left, cv.COLOR_BGR2GRAY)
grayRight = cv.cvtColor(right, cv.COLOR_BGR2GRAY)
stereo = cv.StereoBM_create(numDisparities = 16, blockSize = 17)
disparity = stereo.compute(grayLeft, grayRight)
plt.imshow(disparity,'gray')
plt.show()