罗技quickcam pro 9000采用openCV进行拜耳捕获

时间:2013-04-24 10:29:02

标签: c++ opencv video-capture video-processing logitech

我正在尝试捕获logitech pro 9000的原始数据(例如所谓的Bayer模式)。这可以通过使用所谓的拜耳应用程序来实现,该应用程序可以在互联网上浮动。它应该返回一个8位的拜耳模式,但结果显然不是这样的模式。

然而;正在流式传输的图像似乎非常不合适。从下图中可以看出,我在3通道图像中获得了2个场景图像(总共6个通道)。每个图像是总捕获区域的1/4,因此看起来有某种YUV数据被流式传输。

我无法使用openCV提供的转换将此数据转换为有意义的数据。任何想法发送什么样的数据和(更重要的是)如何将其转换为RGB?

Cropped example of captured image

修改 按照要求;用于生成图像的codesnippet。

system("Bayer.exe 1 8"); //Sets the camera to raw mode
// set up camera
VideoCapture capture(0);
if(!capture.isOpened()){
  waitKey();
  exit(0);
}
Mat capturedFrame;
while(true){
  capture>>capturedFrame;
  imshow("Raw",capturedFrame);
  waitKey(25);
}

2 个答案:

答案 0 :(得分:1)

你是如何使用openCV从流中获取帧的?你能分享一些代码片段吗? openCV中有太多的视频格式用于获取正确的颜色通道和压缩数据。

我认为你应该能够获得正确的图像框架,如下所述:

http://forum.openrobotino.org/archive/index.php/t-295.html?s=c33acb1fb91f5916080f8dfd687598ec

答案 1 :(得分:1)

如果相机的输出数据格式(宽度,高度,位深度,通道数......)和程序预期的数据格式不同,则最有可能发生这种情况。

然而,我只需使用

即可捕获logitec pro cam
Mat img;
VideoCapture cap(0);
cap >> img;