I am converting RGB to YCBCR image but reverse is not working.

3 次查看(过去 30 天)
I want to convert RGB image to YCBCR by using rgb2ycbcr, it is working but when I am using ycbcr2rgb to get back image then it is now converting properly.
  2 个评论
Simon Chan
Simon Chan 2021-8-16
Do you mean the function is not working which cannot generate an image for you? Or the generated RGB image has pixel values which are not exactly the same as the original RGB image?
Balkar Singh
Balkar Singh 2021-8-16
You are right, pixel value are not exactly the same as the orginal value.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2021-8-16
The below images would show color if there was notable difference between the original image and the reconstructed image. But there isn't -- the maximum change during the reconstruction process is 2 out of 256.
imgrgb = imread('flamingos.jpg');
imgy = rgb2ycbcr(imgrgb);
imgrgb2 = ycbcr2rgb(imgy);
max(abs(double(imgrgb) - double(imgrgb2)),[],'all')
ans = 2
imshowpair(imgrgb(:,:,1), imgrgb2(:,:,1));
imshowpair(imgrgb(:,:,2), imgrgb2(:,:,2));
imshowpair(imgrgb(:,:,3), imgrgb2(:,:,3));

更多回答(1 个)

Balkar Singh
Balkar Singh 2021-8-16
You are right, pixel value are not exactly the same as the orginal value.
  2 个评论
Image Analyst
Image Analyst 2021-8-16
Some rounding errors will occur during a round trip when you are converting integers to floating point and then back again.
Balkar Singh
Balkar Singh 2021-8-16
Please consider the example given by Walter Roberson, what i have to add in that example.

请先登录,再进行评论。

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by