计算其HSI模型、YCbCr模型的转换结果

1.有一RGB值为(200,50,120)的颜色,分别计算其HSI模型、YCbCr模型的转换结果
2.利用MATLAB编程,打开一幅真彩色图像,将其变换到HSV、YCbCr空间,观察变换后的数据,并显示变换前后图像.
1.

1.% 输入RGB颜色值
R = 200;
G = 50:
B = 120:
% 将RGB值缩放到0到1之间
r = double(R) / 255,
g = double(G) / 255
b = double(B) / 255:
% 计算亮度值I
l =(r + g + b) / 3;
% 计算饱和度S
if (R == G && G == B)
S=0:
else
S = 1 - min([r,g,b]) / l;
end
% 计算色相H
theta = acos(0.5*((r-g)+(r-b))/sqrt((r-g)^2+(r-b)*(g-b)));
if b > g
H = 2*pi - theta;
else
H = theta;
end
H = H*180/pi; % 将狐度转换为角
% 输出HSI值
fprintf('HSI: H = %.2f, S = %.2f, I = %.2fn', H, S, I);% 计算YCbCr值
Y = 0.299* R + 0.587* G + 0.114* B;
Cb = -0.1687* R -0.3313* G + 0.5* B + 128:Cr = 0.5* R_0.4187 * G - 0.0813* B + 128;
% 输出YCbCr值fprintf('YCbCr: Y = %.2f, Cb = %.2f, Cr = %.2fin' Y Cb, Cr):
2.% 读取真彩色图像
rgb = imread(lena.jpg');
% 将图像从uint8类型转换为double类型
rgb = double(rgb) / 255
,% 将RGB图像变换到HSV空间
hsv = rgb2hsv(rgb);
% 将RGB图像变换到YCbCr空间
ycbcr = rgb2ycbcr(rgb);
% 显示变换前后的图像figure;
subplot(2,2,1);imshow(rgb);title(原图);subplot(2,2,2);imshow(hsv);
title(HSV空间);subplot(2,2,3);imshow(ycbcr);
title(YCbCr空间)subplot(2,2,4);imshow(rgb2gray(rgb));title(灰度图')
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值