OpenCV:cvtColor函数导致Raspberry Pi出现错误
OpenCV: cvtColor function cause error on Raspberry Pi
我正在我的笔记本电脑上运行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摄像头后,一切都很完美。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- 与Qt交叉编译到Raspberry Pi 3B+通讯录(协议缓冲区)-错误符号查找错误
- 接线Pi的分段错误
- 在Raspberry Pi上构建时OpenCV错误
- OpenCV:cvtColor函数导致Raspberry Pi出现错误
- openCV错误:在Raspberry Pi上断言失败(scn==3|scn==4)
- pi 计算的 OpenMP 并行化要么慢,要么错误