天天看點

MATLAB實作灰階圖像的僞彩色增強

僞彩色增強

僞彩色增強的好處:人對圖像灰階的分辨能力比較低,而對色彩的辨識能力卻非常強,通過僞彩色增強,可以更有效地提取圖形資訊,使原圖像細節更易辨認,目标更容易識别。

   僞彩色增強即将灰階圖像的各個不同灰階級按照線性或非線性的映射函數變換成不同的彩色,進而得到彩色圖像。主要方法有密度分割法、灰階級一彩色變換和頻率域僞彩色增強三種。

   下面主要講的是灰階級-彩色變換法,先根據映射函數得到R、G、B三色分量,再将RGB三色分量合成彩色圖像。具體變換規則如下:(其中L為灰階級,I(i,j)為某個像素對應的灰階值,R、G、B為對應的顔色分量)

灰階值範圍 R G B
0-L/4 4I(i,j) L
L/4-L/2 L -4I(i,j)+2L
0-L/4 4I(i,j)-2L L
0-L/4 L -4I(i,j)+4L

實作效果

MATLAB實作灰階圖像的僞彩色增強

參考代碼

im=imread('D:\Fig0419(b).tif');
figure('name','灰階級-彩色變換法');
subplot(1,2,1);
imshow(im);
%将灰階值先轉換為double類型便于後續處理
im=double(im);
[M,N]=size(im);
%初始化R,G,B,RGB
R=ones(M,N);
G=ones(M,N);
B=ones(M,N);
RGB=ones(M,N,3);
%灰階值範圍
L=256;
for i=1:M
    for j=1:N
        if im(i,j)<=L/4
            R(i,j)=0;
            G(i,j)=4*im(i,j);
            B(i,j)=L;
        else
            if im(i,j)<=L/2
                R(i,j)=0;
                G(i,j)=L;
                B(i,j)=-4*im(i,j)+2*L;
            else
                if im(i,j)<=3*L/4
                    R(i,j)=4*im(i,j)-2*L;
                    G(i,j)=L;
                    B(i,j)=0;
                else
                    R(i,j)=L;
                    G(i,j)=-4*im(i,j)+4*L;
                    B(i,j)=0;
                end
            end
        end
    end
end
%合成僞彩色圖像
for i=1:M
    for j=1:N
        RGB(i,j,1)=R(i,j);
        RGB(i,j,2)=G(i,j);
        RGB(i,j,3)=B(i,j);
    end
end
%把大于255的數全部轉化為255,而小于255的部分則保持原樣不變。
RGB=uint8(RGB);
subplot(1,2,2);
imshow(RGB);
           

繼續閱讀