我关注了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);
到 capture.open("someMovie.mp4");
所以它不会打开直播流,而是在现有视频上运行,但它仍然给我同样的错误。
最佳答案
该错误表明您要在调用“cvtColor()”级别转换的帧或图像与您在函数中指示的类型不同。 两个可能的原因:
- 图片有不同的类型
- 或者你的框架是空的
尝试将 CV_BGR2HSV 更改为 CV_RGB2HSV 或尝试打印您从摄像头获得的图像以检查它是否为空。 希望对你有帮助
关于c++ - openCV 错误 : Assertion failed (scn == 3 || scn == 4) on Raspberry Pi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414265/