gpt4 book ai didi

c++ - BGR 到 YCrCb 导致 OpenCV 中的灰色图像

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:44 25 4
gpt4 key购买 nike

我正在将 BGR 图像转换为 YCrCb 并将其保存在磁盘中;但是,输出的图像是灰色的,如何将彩色图像保存到磁盘?

这只是我的代码的一个例子:

Mat img = imread("...");
Mat img2;
cvtColor(img, img2, CV_BGR2YCrCb);

vector<Mat> planes;
split(imgColorConverted, planes);

imwrite(".../planes1.jpg", planes[0]);
imwrite(".../planes2.jpg", planes[1]);
imwrite(".../planes3.jpg", planes[2]);

当我打开保存的图像时,它是灰色的。是否可以将图像保存为我在维基百科(Wikipedia - YCbCr)上找到的以下示例?:

谢谢!

Image extracted from Wikipedia

最佳答案

在你的例子中,你保存了 1 个 channel 的图片,所以它是灰色的。事实上,你应该做的是:

Mat img = imread("...");
Mat img2;
cvtColor(img, img2, CV_BGR2YCrCb);

vector<Mat> planes;
split(imgColorConverted, planes);

Mat* planes2 = new Mat[3];
Mat emptyMat(planes[0].size(), planes[0].type(), Scalar(0));
Mat Cr, Cb;
imwrite(".../planes1.jpg", planes[0]);
// Set Cr channel on R channel
planes2[0] = emptyMat;
planes2[1] = emptyMat;
planes2[2] = planes[1];
merge(planes2, 3, Cr);
imwrite(".../planes2.jpg", Cr);
// Set Cb channel on B channel
planes2[0] = planes[2];
planes2[1] = emptyMat;
planes2[2] = emptyMat;
merge(planes2, 3, Cb);
imwrite(".../planes3.jpg", Cb);

关于c++ - BGR 到 YCrCb 导致 OpenCV 中的灰色图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29586866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com