c++ - openCV 错误 : Assertion failed (scn == 3 || scn == 4) on Raspberry Pi

标签 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);capture.open("someMovie.mp4"); 所以它不会打开直播流,而是在现有视频上运行,但它仍然给我同样的错误。

最佳答案

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

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

尝试将 CV_BGR2HSV 更改为 CV_RGB2HSV 或尝试打印您从摄像头获得的图像以检查它是否为空。 希望对你有帮助

关于c++ - openCV 错误 : Assertion failed (scn == 3 || scn == 4) on Raspberry Pi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414265/

相关文章:

Android OpenCV 检索交点

c++ - OpenCV - 寻找轮廓终点?

c++ - Qt C++ - 在 QText 浏览器中显示链接

java - 将可绘制对象作为字节数组发送到android的jni部分

c++ - 让自定义 Find*.cmake 文件根据 visual studio 构建类型(调试/发布)查找不同的库

python - 你能详细描述一下下面的python opencv函数吗?

python - 使用 Python 通过 GPIO 对 Raspberry Pi 进行 LED 控制

arm - 中断在多核系统中是如何工作的?

python - Raspberry Pi 相机 GPIO...close 语句导致错误

c++ - 为什么这个 C++ 构造函数会自动指向复制构造函数?