YUV-RGB的转换公式不对还是我的程序不对?
a=imread('男43岁面色萎黄10AM闪光~.JPG');R=a(:,:,1);G=a(:,:,2);B=a(:,:,3);Y=0.299*R+0.587*G+0....
a=imread('男43岁 面色萎黄 10AM 闪光~.JPG');
R=a(:,:,1);
G=a(:,:,2);
B=a(:,:,3);
Y = 0.299*R + 0.587*G + 0.114*B;
U = -0.147*R - 0.289*G + 0.436*B;
V = 0.615*R - 0.515*G - 0.100*B;
% Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16;
% V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128;
% U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128;
R1 = Y + 1.14*V;
G1 = Y - 0.39*U - 0.58*V;
B1 = Y + 2.03*U;
% R1 = 1.164*(Y - 16) + 1.596*(V - 128);
% G1 = 1.164*(Y - 16) - 0.813*(V - 128) - 0.391*(U - 128);
% B1 = 1.164*(Y - 16) + 2.018*(U - 128);
A(:,:,1)=R1;
A(:,:,2)=G1;
A(:,:,3)=B1;
subplot(1,2,1);imshow(a);title('原图')
subplot(1,2,2);imshow(A);title('同态滤波后的图象')
很奇怪,做Y值滤波的时候图像颜色怎么都不对,于是单独把RGB转成YUV再转回来,发现颜色也不对,多了一层蓝色(无论使用程序里的公式还是注释掉的公式都一样),请问各位大虾什么地方有问题?还是这公式本身就有问题?
matlab程序 展开
R=a(:,:,1);
G=a(:,:,2);
B=a(:,:,3);
Y = 0.299*R + 0.587*G + 0.114*B;
U = -0.147*R - 0.289*G + 0.436*B;
V = 0.615*R - 0.515*G - 0.100*B;
% Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16;
% V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128;
% U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128;
R1 = Y + 1.14*V;
G1 = Y - 0.39*U - 0.58*V;
B1 = Y + 2.03*U;
% R1 = 1.164*(Y - 16) + 1.596*(V - 128);
% G1 = 1.164*(Y - 16) - 0.813*(V - 128) - 0.391*(U - 128);
% B1 = 1.164*(Y - 16) + 2.018*(U - 128);
A(:,:,1)=R1;
A(:,:,2)=G1;
A(:,:,3)=B1;
subplot(1,2,1);imshow(a);title('原图')
subplot(1,2,2);imshow(A);title('同态滤波后的图象')
很奇怪,做Y值滤波的时候图像颜色怎么都不对,于是单独把RGB转成YUV再转回来,发现颜色也不对,多了一层蓝色(无论使用程序里的公式还是注释掉的公式都一样),请问各位大虾什么地方有问题?还是这公式本身就有问题?
matlab程序 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询