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程序
展开
 我来答
vashzsun
2007-11-16 · 超过18用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:45.2万
展开全部
matlab不会,但是我觉得是你转换公式有问题.我以前编过一个图像程序用的是delphi但是公式应该是一样的记得rgb转yuv是至少有个必须乘0.5的参数,太久了记不太清,当时参考一本叫"delphi数字图像处理及高级应用"的书,不错的,虽然是delpi但是各种应用的算法都是通用的.你可以找下,我记得网上有扫描版本的.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式