我对Matlab非常陌生。我正在尝试将RGB图像转换为YUV,并将其转换回RGB。以下是我的代码:
RGB = imread('ist.jpg');
R = RGB(:,:,1);
G = RGB(:,:,2);
B = RGB(:,:,3);
Y = 0.299 * R + 0.587 * G + 0.114 * B;
U = -0.14713 * R - 0.28886 * G + 0.436 * B;
V = 0.615 * R - 0.51499 * G - 0.10001 * B;
R = Y + 1.139834576 * V;
G = Y -.3946460533 * U -.58060 * V;
B = Y + 2.032111938 * U;
RGB = cat(3,R,G,B);
imshow(RGB);
Matlab显示的最终图像非常蓝色,与初始RGB图像非常不同。另外,当我比较某些像素的蓝色通道值之前和之后,我得到的值是不同的。我做错了什么。
如果有更高效、更短的方法让我访问图像的Y、U和V值,那就更好了。
无论任何帮助,我都会非常感激。