我从 Basler 相机获取拜耳图像(原始数据)并将其保存在 CSV 文件中。我再次从相机获取 GBR 图像并使用以下代码将其转换为原始数据并将其保存为 CSV 文件。但这两个 CSV 文件是不同的。 70% 的单元格完全相同,其他单元格的差异在 -130 到 127 之间,但只有 4% 的差异大于 5 或小于 -5。问题是什么?我该如何解决?还是正常的?
cv::Mat ConvertBGR2Bayer(cv::Mat BGRImage) {
cv::Mat BayerImage(BGRImage.rows, BGRImage.cols, CV_8UC1);
int channel;
for (int row = 0; row < BayerImage.rows; row++)
{
for (int col = 0; col < BayerImage.cols; col++)
{
if (row % 2 == 0)
{
//even columns and even rows = blue = channel:0
//even columns and uneven rows = green = channel:1
channel = (col % 2 == 0) ? 0 : 1;
}
else
{
//uneven columns and even rows = green = channel:1
//uneven columns and uneven rows = red = channel:2
channel = (col % 2 == 0) ? 1 : 2;
}
BayerImage.at<uchar>(row, col) = BGRImage.at<cv::Vec3b>(row, col).val[channel];
}
}
return BayerImage;
}
'''