捕获 OpenCV 后图像显示为绿色
Posted
技术标签:
【中文标题】捕获 OpenCV 后图像显示为绿色【英文标题】:image appears green after capture OpenCV 【发布时间】:2016-05-16 07:52:12 【问题描述】:我有这段代码,它使用 OpenCV 从网络摄像头捕获图像:
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <stdio.h>
using namespace std;
using namespace cv;
int main( )
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
Mat meter_image;
cap >> meter_image;
imwrite("/boneCV-master/img.jpg", meter_image);
return 0;
我得到以下图像作为输出。
以前它工作正常。我不知道发生了什么。我在谷歌搜索时尝试了所有代码中最简单的,但没有任何效果。请让我知道它可能有什么问题。
提前致谢。
编辑
我忘记提及的一件事是我正在开发 beagleBone Black。这段代码很适合我的 mac。
【问题讨论】:
有时由于相机驱动程序中的某些故障,捕获的第一帧全为零,请尝试获取更多帧。 @ATulSingh 我忘了在我的问题中提到 Beaglebone black。请检查我的编辑 很抱歉,我对这款 Beaglebone black 没有任何想法。你可以做的一件事就是调试 OpenCV 捕获代码,进入这个可能你会发现一些东西,祝你好运(Y) 【参考方案1】:也许添加帧检查会有所帮助。
Mat meter_image;
while(meter_image.empty())
cap >> meter_image;
但存在无限循环的风险。
【讨论】:
检查我的编辑...我忘了在这里提到 BeagleBone Black 对不起,我不知道这个设备。我用谷歌搜索了一下,发现了这个tutorial。我猜你会用它。如果没有检查它。也许你忘了给编译器添加一些选项。以上是关于捕获 OpenCV 后图像显示为绿色的主要内容,如果未能解决你的问题,请参考以下文章
为啥用opencv捕获摄像头视频流时,突然显示框内就变灰了呢