【數字圖像處理】Matlab實現-圖像增強-彩色圖像增強(彩虹編碼,熱金屬編碼)


偽彩色處理

偽彩色增強:把一幅黑白域圖像的不同灰度級映射為一幅彩色圖像的技術手段。

偽彩色增強有很多種方法,而下面的增強方法則是使用的空間域灰度級-彩色變換法。

空間域灰度級-彩色變換法:可以將灰度圖像變為具有多種顏色漸變的連續彩色圖像,變換后的圖像視覺效果較好,主要色相是將灰度圖像f(x,y)送入具有不同變換性質的紅、綠、藍3個變換器,相對應的產生3個不同的輸入fR(x,y),fG(x,y),fB(x,y)將它們對應地作為彩色圖像的紅綠藍三個色彩分量合成一副彩色圖像。

彩虹編碼和熱金屬編碼是其中的兩種變化函數。

彩虹編碼

%轉換為灰度
gray=rgb2gray(Image1);
[h,w]=size(gray);
%新圖像的矩陣
NewImage3=zeros(h,w,3);
for x=1:h
    for y=1:w
        if gray(x,y)<96
        NewImage3(x,y,1)=0;
        elseif gray(x,y)<128
        NewImage3(x,y,1)=255*(gray(x,y)-96)/32;
        else
        NewImage3(x,y,1)=255;
        end
    end
end
for x=1:h
    for y=1:w
        if gray(x,y)<32
        NewImage3(x,y,2)=0;
        elseif gray(x,y)<64
        NewImage3(x,y,2)=255*(gray(x,y)-32)/32;
        elseif gray(x,y)<128
        NewImage3(x,y,2)=255;
        elseif gray(x,y)<192
        NewImage3(x,y,2)=255*(192-gray(x,y))/64;
        else
        NewImage3(x,y,2)=255*(gray(x,y)-192)/64;
        end
    end
end
for x=1:h
    for y=1:w
        if gray(x,y)<32
        NewImage3(x,y,3)=255*gray(x,y)/32;
        elseif gray(x,y)<64
        NewImage3(x,y,3)=255;
        elseif gray(x,y)<96
        NewImage3(x,y,3)=255*(96-gray(x,y))/32;
        elseif gray(x,y)<192 
        NewImage3(x,y,3)=0;
        else
        NewImage3(x,y,3)=255*(gray(x,y)-192)/64;
        end
    end
end
imshow(NewImage3),title('彩虹編碼')

處理結果
處理結果

熱金屬編碼

    
%轉換為灰度
gray=rgb2gray(Image1);
[h,w]=size(gray);
%新圖像的矩陣
NewImage4=zeros(h,w,3);
for x=1:h
    for y=1:w
        if gray(x,y)<64
        NewImage4(x,y,1)=0;
        elseif gray(x,y)<128
        NewImage4(x,y,1)=255*(gray(x,y)-64)/64;
        else
        NewImage4(x,y,1)=255;
        end
    end
end
for x=1:h
    for y=1:w
        if gray(x,y)<128
        NewImage4(x,y,2)=0;
        elseif gray(x,y)<192
        NewImage4(x,y,2)=255*(gray(x,y)-128)/64;
        else
        NewImage4(x,y,2)=255;
        end
    end
end
for x=1:h
    for y=1:w
        if gray(x,y)<64
        NewImage4(x,y,3)=255*gray(x,y)/64;
        elseif gray(x,y)<96
        NewImage4(x,y,3)=255;
        elseif gray(x,y)<128
        NewImage4(x,y,3)=255*(128-gray(x,y))/32;
        elseif gray(x,y)<192 
        NewImage4(x,y,3)=0;
        else
        NewImage4(x,y,3)=255*(gray(x,y)-192)/64;
        end
    end
end
imshow(NewImage4),title('熱金屬編碼')

處理結果
處理結果
————————————————
版權聲明:本文為CSDN博主「SKY_FISHSKY_FISH」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/SUMMER_RAINOW/article/details/115773441


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM