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

Posted

技术标签:

【中文标题】如何使用 OpenCV 将 Bayer 转换为 RGB,反之亦然【英文标题】:How do I convert Bayer to RGB using OpenCV and vice versa 【发布时间】:2011-09-29 14:28:44 【问题描述】:

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】:

不幸的是,OpenCV 不提供 BGR 到 Bayer 的转换。只能向后转换。

如果您需要转换为 Bayer 格式,那么您应该自己实现此转换或使用其他库。

【讨论】:

我明白了,谢谢。你有什么经验/建议哪个图书馆提供这个?

以上是关于如何使用 OpenCV 将 Bayer 转换为 RGB,反之亦然的主要内容,如果未能解决你的问题,请参考以下文章

在 OpenCV 中使用我自己的公式将 RGB 转换为灰色

如何使用opencv将图像转换为Python中的矩阵

如何使用opencv将鱼眼相机拍摄的图像转换为平面(矩形)图像?

如何使用 OpenCV(在 C++ 中)将齐次点转换为非齐次点

如何将 C++ 数组转换为 opencv Mat

android:如何将 int[] 转换为 OpenCV Mat c++?