matlab下 rgb2hsi(图片路径) 函数代码

新建函数编辑窗口,输入以下代码,保存至你的工作路径下即可。保存文件的文件无所谓,建议和函数名一致,在此也就是 rgb2hsi.m
</pre><pre code_snippet_id="1563274" snippet_file_name="blog_20160123_3_5823806" name="code" class="html">function hsi = rgb2hsi(rgb)
%hsi = rgb2hsi( rgb )将rgb转化为hsi
%输出hsi是double型的

rgb =imread(rgb);%没有这句会报错
%提取图像RGB分量
rgb = im2double(rgb);
r = rgb(:,:,1);
g = rgb(:,:,2);
b = rgb(:,:,3);

%执行转化
num = 0.5*((r-g)+(r-b));
den = sqrt((r-g).^2 +(r-b).*(g-b));
theta = acos(num./(den + eps)); %eps极小值标示,防止除以0出错

H = theta;
H( b>g ) = 2*pi - H( b>g );
H = H/(2*pi);

num = min(min(r,g),b);
den = r + g + b;
den(den == 0) = eps;%eps极小值标示,防止除以0出错
S = 1 - 3.* num./den;
H( S==0 ) = 0;
I = ( r + g + b )/3;

%组合hsi图像,H、S、I是矩阵
hsi = cat(3,H,S,I);


end


  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值