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

时间:2015-04-02 13:32:05

标签: c++ opencv raspberry-pi

我已经跟踪了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并且与之相似,但它无助于我解决问题。

此处提供的源代码:

objectTrackingTutorial.cpp

Fruit.cpp

Fruit.h

我听说问题可能出在相机或相机驱动程序上,所以我尝试使用usb相机和pi相机,我也尝试将行capture.open(0);更改为{{1因此,它不会打开一个直播视频,而是会在一个现有的视频中播放,但它仍然会给我同样的错误。

1 个答案:

答案 0 :(得分:4)

错误表示您要在调用级别转换的帧或图像&c; cvtColor()'与您在函数中指示的类型不同。 两个可能的原因:

  1. 图片有不同的类型
  2. 或您的框架为空
  3. 尝试将CV_BGR2HSV更改为CV_RGB2HSV 或者尝试打印从相机中获取的图像,以检查它是否为空。 希望有所帮助