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

OpenCV提供了将Bayer转换为RGB的功能,但是如何使用 CV_BayerBG2BGR 和其他类似功能?
我在下面使用了代码,但是错误显示为无效 channel 号。由于我将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图像转换为Bayer格式(比如说doublelinear),openCV是否也提供此功能?

任何帮助将非常感激。

提前致谢。

最佳答案

不幸的是,OpenCV不提供BGR到拜耳的转换。仅向后转换可用。

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

https://stackoverflow.com/questions/7598854/

相关文章:

opencv - 无 8 位系统上的 CV_8U opencv 矩阵

opencv - OpenCV入门,API函数使用推荐

opencv - 摄像机旋转和跟踪平移?

docker - 在 compose 中取消设置环境变量

android - 如何使用三星 Galaxy S2 前置摄像头?

docker - 私有(private) Docker 注册表的多个用户?

java - 如何将本地 Docker 镜像与 testcontainers 一起使用?

opencv - opencv在照片中查找并处理商店货架标签

image-processing - openCV2.3中卷积方法的高斯模糊错误

random - 检测到随机圆