convt.m

来自「perform segmentation matlab source code」· M 代码 · 共 73 行

M
73
字号
function hsv=convt(rgb)


r1=rgb(:,:,1);
g1=rgb(:,:,2);
b1=rgb(:,:,3);
if isa(r1, 'uint8'), 
        r1 = double(r1) / 255; 
     elseif isa(r1, 'uint16')
        r1 = double(r1) / 65535;
     end
     
     if isa(g1, 'uint8'), 
        g1= double(g1) / 255; 
     elseif isa(g1, 'uint16')
        g1 = double(g1) / 65535;
     end
     
     if isa(b1, 'uint8'), 
        b1 = double(b1) / 255; 
     elseif isa(b1, 'uint16')
        b1 = double(b1) / 65535;
     end
dim=size(r1)
h1=zeros(size(r1));
s1=zeros(size(r1));
v1=zeros(size(r1));

for i=1:dim(1,1)
    for j=1:dim(1,2)
        r=r1(i,j);
        g=g1(i,j);
        b=b1(1,j);
Max= max(max(g,b),r);
Min=min(min(b,g),r);

delta=Max-Min;
v=Max;
if(Max~=0.0)
    s=delta/Max;
else
    s=0.0;
end
if s==0.0
    
    h=0;
else
    if r==Max
        h=(g-b)/delta;
    elseif g==Max
            h=2.0+(b-r)/delta;
    elseif b==Max
        h=4.0+(r-g)/delta;
    end
        h=h*60.0;
        if(h<0)
            h=h+360.0;
        end
            h=h/360.0;
        
end
h1(i,j)=h;
s1(i,j)=s;
v1(i,j)=v;
    end
end
hsv(:,:,1)=h1;
hsv(:,:,2)=s1;
hsv(:,:,3)=v1;



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?