2013-04-24 69 views
2

我试图捕获logitech pro 9000的原始数据(例如所谓的拜耳模式)。这可以通过使用所谓的拜耳应用程序来实现,它可以在互联网上找到。它应该返回一个8位的拜尔模式,但结果显然不是这种模式。Logitech quickcam pro 9000用openCV拍摄拜尔

但是;正在流式传输的映像看起来相当不错。从下面的图片可以看出,我在3通道图像中获得了2幅场景图像(共6个通道)。每个图像都是整个捕捉区域的1/4,所以看起来似乎有某种YUV数据正在流式传输。

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

Cropped example of captured image

EDIT 作为请求;用于生成图像的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); 
} 
+0

你尝试CV :: cvtColor与之一:CV_BayerBG2BGR,CV_BayerGB2BGR,CV_BayerRG2BGR,CV_BayerGR2BGR,CV_BayerBG2RGB,CV_BayerGB2RGB,CV_BayerRG2RGB,CV_BayerGR2RGB – Micka 2014-11-15 12:08:10

+0

我相信我已经做到了,但是我尝试了一段时间。我无法获得此代码的工作,所以我放弃了它。 – Nallath 2014-11-17 10:14:21

回答

1

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

我想你应该能够获得正确的图像帧这里提到:

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

+0

我已经添加了用于生成图像的代码片段。 “正常”图像的捕获完美,但我正在寻找原始数据(例如拜耳模式)。 – Nallath 2013-05-06 09:45:48

1

这是最有可能发生,如果出把数据格式(宽度,高度,位深度,没有频道...)的相机和你的程序所期望的数据格式是不同的。

但是我可以捕捉的Logitec亲凸轮,只需通过使用

Mat img; 
VideoCapture cap(0); 
cap >> img; 
+0

问题并不在于Logitech的实际捕获。相机在“正常”模式下工作得很好(例如:完整图像)。但是,我想访问原始数据。 – Nallath 2013-05-06 09:38:57