• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: Matlab  RGB  HIS  

资源简介

基于Matlab的图像RGB和HIS互换,包含RGB转为HSI和HSI转为RGB。

资源截图

代码片段和文件信息

function   rgb_hsi(rgb)
%RGB和HIS互相转换

rgb=im2double(rgb);
%%%%%%RGB转为HSI
fR=rgb(::1);%获取R,G,B三个通道
fG=rgb(::2);
fB=rgb(::3);
[mn]=size(fR);
q=zeros(mn);
I=q;
S=I;
H=S;
for  i=1:m
    for j=1:n
        A= (fR(ij)-fG(ij)+fR(ij)-fB(ij))/2;
        B=((fR(ij)-fG(ij))^2+(fR(ij)-fB(ij))*(fG(ij)-fB(ij)))^(1/2);      
        q(ij)=acos(A/(B+eps));%q代表角度θ,色度分量
        q(ij)=(q(ij)*360/(2*pi))/360;%归一化
        I(ij)=(fR(ij)+fG(ij)+fB(ij))/3;%亮度分量I
        m1=min(fG(ij)fB(ij));
        m2=min(m1fR(ij));%m2为fG(ij)fB(ij)fR(ij)的最小值
        S(ij)=1-(3*m2/(fR(ij)+fG(ij)+fB(ij)+eps));%饱和度分量S
        %计算色度分量
        if fG(ij)             H(ij)=1-q(ij);           
        else        
             H(ij)=q(ij);
        end
    end
end
HSI=cat(3HSI);%合成HSI
figuresubplot(234)imshow(rgb)title(‘原RGB图像‘);
subplot(231)imshow(H)title(‘H波段图像‘);
subplot(232)imshow(S)title(‘S波段图像‘);
subplot(233)imshow(I)title(‘I波段图像‘);
su

评论

共有 条评论