我已经跟踪了this tutorial的OpenCV对象跟踪,并设法使我的笔记本电脑上的代码工作,无论是在使用Visual Studio的Windows上还是在我的Ubuntu VM上(使用CMake)。现在我尝试在我的Raspberry Pi上运行它(运行Raspbian)。 cmake .
和make
命令似乎工作正常但是当我尝试运行可执行文件时出现以下错误:
pi@raspberrypi ~/Desktop/Track $ ./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 question并且与之相似,但它无助于我解决问题。
此处提供的源代码:
我听说问题可能出在相机或相机驱动程序上,所以我尝试使用usb相机和pi相机,我也尝试将行capture.open(0);
更改为{{1因此,它不会打开一个直播视频,而是会在一个现有的视频中播放,但它仍然会给我同样的错误。
答案 0 :(得分:4)
错误表示您要在调用级别转换的帧或图像&c; cvtColor()'与您在函数中指示的类型不同。 两个可能的原因:
尝试将CV_BGR2HSV更改为CV_RGB2HSV 或者尝试打印从相机中获取的图像,以检查它是否为空。 希望有所帮助