OpenCV:cvtColor函数导致Raspberry Pi出现错误

OpenCV: cvtColor function cause error on Raspberry Pi

本文关键字:Pi 错误 Raspberry cvtColor 函数 OpenCV      更新时间:2023-10-16

我正在我的笔记本电脑上运行OpenCV代码,使用Visual Studio和Ubuntu VM(使用CMake)在Windows上运行。代码在两者上都运行得很好,但当我试图在我的Raspberry Pi 2B上运行它时,函数cvtColor()(第205行)会导致以下错误:

pi@raspberrypi ~/Desktop/Track1 $ ./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

我看到了尝试检查框架是否为空的建议,但考虑到它没有运行,我不确定如何在这段代码中进行检查。

我还试图将输入从camera.open(0);更改为camera.open("someMovieInFolder.mp4");,但问题仍然存在。

看起来图像确实是空的。图像捕获函数返回一个布尔值,可以检查该值以查看捕获是否成功完成并返回一个有效图像。您也可以尝试打印或定制图像的宽度/高度。它应该是非零的。

好的,我明白了。事实上,问题是图像为空,这就是导致运行时错误的原因原因是Pi相机。不幸的是,这个功能不适用于Pi摄像头(或者至少需要一些调整),所以在插入USB摄像头后,一切都很完美。