如何使用OpenCV将Bayer转换为RGB,反之亦然

时间:2011-09-29 14:28:44

标签: visual-c++ opencv

OpenCV提供了将Bayer转换为RGB的功能,但如何使用这个 CV_BayerBG2BGR 和其他类似的功能? 我使用下面的代码,但错误显示无效的频道号。由于我使用RGB图像作为originalImage,无论如何这个函数实际上是如何工作的?

void main(){
// Declare and load the image
// Assume we have sample image *.png
IplImage *originalImage = cvLoadImage("bayer-image.jpg",-1);

// The image size is said to be 320X240
IplImage *bayer2RGBImage;
bayer2RGBImage = cvCreateImage(cvSize(100,100),8,3);
cvCvtColor(originalImage,bayer2RGBImage,CV_BayerBG2BGR);

//Save Convertion Image to file.
cvSaveImage("test-result.jpg",bayer2RGBImage);

//Release the memory for the images that were created.
cvReleaseImage(&originalImage);
cvReleaseImage(&bayer2RGBImage);}

此外,我想将常见的RGB图像转换为拜耳格式(比如双线性),openCV是否也提供此功能?

任何帮助都会非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:1)

不幸的是,OpenCV没有为拜耳转换提供BGR。只能进行后向转换。

如果您需要转换为拜耳格式,则应自行实施此转换或使用其他库。