1. 程式人生 > >影象的灰度級差值

影象的灰度級差值

灰度級差值是用來估計畫素在影象畫素間某一位置的取值的。

1)向前對映法

    通過輸入影象畫素位置,計算輸出影象對應畫素的位置,將該位置畫素的灰度值按某種方式分配到輸出影象相鄰四個畫素。

2)向後對映法

 通過輸出影象畫素的位置,計算屬兔影象對應畫素的位置,根據輸入影象相鄰四個畫素的灰度值計算該位置畫素的灰度值。

3)最近鄰差值

向後對映時,輸出影象的灰度等於離它所對映位置最近的輸入影象的灰度值

4)雙線性差值

四點確定一個平面函式

5)三次卷積法

如果在變換後的座標附近能找到16個鄰點則可採用此法。

下面是MATLAB 實現程式碼:

i=imread('lena.jpg');
I=rgb2gray(i);
subplot(231);
imshow(i);%原始影象
title('原始影象');
subplot(232);
imshow(I);%灰度影象
title('灰度影象');
I2=imresize(I,0.125);%縮小影象
Z1=interp2(double(I2),2,'nearest');%最鄰近差值方法
Z1=uint8(Z1);
subplot(233);
imshow(Z1);
title('最鄰近差值影象');
Z2=interp2(double(I2),2,'linear');%線性差值
Z2=uint8(Z2);
subplot(234);
imshow(Z2);
title('線性差值影象');
Z3=interp2(double(I2),2,'spline');%三次樣條差值
Z3=uint8(Z3);
subplot(235);
imshow(Z3);
title('三次樣條差值影象');
Z4=interp2(double(I2),2,'cubic');%立方差值
Z4=uint8(Z4);
subplot(236);
imshow(Z4);
title('立方差值影象');

結果顯示:
<img src="https://img-blog.csdn.net/20160903150937946?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
從上面的結果可以看出最近鄰插值有明顯的馬賽克現象,線性插值就沒有這麼嚴重,三次樣條和立方插值所得的結果較前兩幅更加細膩