openCV错误:在Raspberry Pi上断言失败(scn == 3 || scn == 4)

DME*_*MEM 6 c++ opencv raspberry-pi

我已经遵循了OpenCV对象跟踪的教程,并设法使代码在我的笔记本电脑上工作,无论是在Windows上使用Visual Studio还是在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
Run Code Online (Sandbox Code Playgroud)

我已经看过这个问题并且与之类似,但是它并没有帮助我解决问题。

此处提供源代码:

objectTrackingTutorial.cpp

水果

水果

我听说问题可能出在相机或相机驱动程序上,所以我尝试使用USB相机和pi相机,并且还尝试将线路更改capture.open(0);capture.open("someMovie.mp4");,而不是打开实时流,它将在退出视频,但仍然给我同样的错误。

小智 5

该错误表明您要在调用“ cvtColor()”级别转换的帧或图像的类型与您在函数中指示的类型不同。两种可能的原因:

  1. 图片类型不同
  2. 或者你的框架是空的

尝试将CV_BGR2HSV更改为CV_RGB2HSV或尝试打印从凸轮获取的图像以检查其是否为空。希望对你有帮助