首页 > 解决方案 > OpenCV图像转换问题(BayerGB8转RGB)

问题描述

我正在尝试使用 pleora sdk 转换从高速相机获取的图像。制造商应用程序的文档/设置显示图像是使用 BayerGB8 传输的。为了进一步处理和存储,我需要某种 RGB/BGR 格式的图像。但是,我的代码只显示了一些奇怪的颜色:

使用

      cv::Mat bayer8BitMat(lHeight, lWidth, CV_8UC1, dispBuffer->GetDataPointer());
      cv::Mat rgb8BitMat(lHeight, lWidth, CV_8UC3);
      cv::cvtColor(bayer8BitMat, rgb8BitMat, CV_BayerGB2RGB);

      QImage qimg= QImage((uchar*) rgb8BitMat.data, rgb8BitMat.cols, rgb8BitMat.rows, rgb8BitMat.step, QImage::Format_RGB888);

我的图像如下所示: 在此处输入图像描述

使用 CV_BayerGB2RGB 选项给我以下图片: 在此处输入图像描述

我试过的另一个选择:

      cv::Mat bayer8BitMat(lHeight, lWidth, CV_8UC1, dispBuffer->GetDataPointer());
      cv::Mat rgb8BitMat(lHeight, lWidth, CV_8UC1);
      cv::cvtColor(bayer8BitMat, rgb8BitMat, CV_BayerBG2RGB);

      QImage qimg= QImage((uchar*) rgb8BitMat.data, rgb8BitMat.cols, rgb8BitMat.rows, rgb8BitMat.step, QImage::Format_RGB16);

显示以下内容: 在此处输入图像描述

图像应大致如下所示(相机所在的位置非常暗......) 在此处输入图像描述

标签: c++opencvpleora-sdk

解决方案


推荐阅读