數字圖像處理——RGB與HSI的相互轉換

數字圖像處理——RGB與HSI的相互轉換

> 一、RGB->HSI

clc,clear;

%圖像讀取及預處理
Image= double(imread('2.jpg'));
IMAGE1= Image(:,:,1);
[lines,samples,bands] = size(Image);
IMG1 = reshape(IMAGE1,1,[]);
MAX = max(IMG1);
MIN = min(IMG1);

HSI = zeros(lines,samples,3); %用三維向量分別存儲HSI(色度,飽和度,亮度)
for i = 1:lines
    for j = 1:samples
        if( Image(i,j,1)== Image(i,j,2) && Image(i,j,2) ==Image(i,j,3))
            JD = 0;
        else
        JD = 180*acos((2*Image(i,j,1)-Image(i,j,2)-Image(i,j,3))/(2*((Image(i,j,1)-Image(i,j,2))^2+(Image(i,j,1)-Image(i,j,3))*(Image(i,j,2)-Image(i,j,3)))^0.5))/pi;
        end
        if(Image(i,j,2)>=Image(i,j,3))
            HSI(i,j,1) = JD;
        else
            HSI(i,j,1) = 360 - JD;
        end
        HSI(i,j,2) = 1-3*min(min(Image(i,j,1),Image(i,j,2)),Image(i,j,3))/(Image(i,j,1)+Image(i,j,2)+Image(i,j,3));
        HSI(i,j,3) = (Image(i,j,1)+Image(i,j,2)+Image(i,j,3))/3;
    end
end

> 二、HSI->RGB

Image1 = zeros(lines,samples,3);
for i = 1:lines
    for j = 1:samples
        if(HSI(i,j,1)>=0 && HSI(i,j,1)<120)
            Image1(i,j,3) = round(HSI(i,j,3)*(1-HSI(i,j,2)));
            Image1(i,j,1) = round(HSI(i,j,3)*(1+HSI(i,j,2)*cos(pi*HSI(i,j,1)/180)/cos(pi*(60-HSI(i,j,1))/180)));
            Image1(i,j,2) = round(3*HSI(i,j,3)- Image1(i,j,1)-Image1(i,j,3));            
        end
    
        if(HSI(i,j,1)>=120 && HSI(i,j,1)<240)
            Image1(i,j,1) = round(HSI(i,j,3)*(1-HSI(i,j,2)));
            Image1(i,j,2) = round(HSI(i,j,3)*(1+HSI(i,j,2)*cos(pi*(HSI(i,j,1)-120)/180)/cos(pi*(180-HSI(i,j,1))/180)));
            Image1(i,j,3) = round(3*HSI(i,j,3)- Image1(i,j,1)- Image1(i,j,2));          
        end
        
        if(HSI(i,j,1)>=240 && HSI(i,j,1)<360)
            Image1(i,j,2) = round(HSI(i,j,3)*(1-HSI(i,j,2)));
            Image1(i,j,3) = round(HSI(i,j,3)*(1+HSI(i,j,2)*cos(pi*(HSI(i,j,1)-240)/180)/cos(pi*(360-HSI(i,j,1))/180)));          
            Image1(i,j,1) = round(3*HSI(i,j,3)- Image1(i,j,2)- Image1(i,j,3));
        end
    end
end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章