我在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");
,但问题仍然存在。
答案 0 :(得分:2)
看起来好像图像是空的。可以检查图像捕获函数returns a boolean value以查看捕获是否成功完成并返回了一个虚拟图像。您也可以尝试printf或cout图像的宽度/高度。它应该是非零的。
答案 1 :(得分:0)
好的我明白了。实际上,问题在于图像是空的,这是造成运行时错误的原因。 原因是Pi相机。不幸的是,这个功能不适用于Pi摄像头(或者至少需要一些调整),因此在插入USB摄像头之后它完全可以正常工作。