OpenCV:cvtColor函数导致Raspberry Pi出错

时间:2015-04-03 09:22:07

标签: c++ opencv raspberry-pi raspberry-pi2

我在Windows上使用Visual Studio和Ubuntu VM(使用CMake)在笔记本电脑上运行OpenCV code。这两个代码完全正常但是当我尝试在我的Raspberry Pi 2B上运行它时,函数cvtColor()(第205行)会导致以下错误:

pi@raspberrypi ~/Desktop/Track1 $ ./TrackObj 
init done 
opengl support available 
OpenCV Error: Assertion failed ((scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F)) in cvtColor, file /home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp, line 3961
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp:3961: error: (-215) (scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F) in function cvtColor

Aborted

我已经看过建议尝试检查框架是否为空但我不确定如何在this code中执行它,因为它没有运行。

我还尝试将输入从camera.open(0);更改为camera.open("someMovieInFolder.mp4");,但问题仍然存在。

2 个答案:

答案 0 :(得分:2)

看起来好像图像是空的。可以检查图像捕获函数returns a boolean value以查看捕获是否成功完成并返回了一个虚拟图像。您也可以尝试printf或cout图像的宽度/高度。它应该是非零的。

答案 1 :(得分:0)

好的我明白了。实际上,问题在于图像是空的,这是造成运行时错误的原因。 原因是Pi相机。不幸的是,这个功能不适用于Pi摄像头(或者至少需要一些调整),因此在插入USB摄像头之后它完全可以正常工作。