天天看點

[數字圖像處理]數字圖像的整數倍縮小

1.理想的縮小法

            與數字圖像的整數倍擴大法一樣,先在理想的情況下,研究理想的縮小法。以此作為目标,對簡單的縮小法的效果進行分析。是以,還是與擴大法一個思路,首先,做出兩個信号。        信号①:選擇采樣時間

[數字圖像處理]數字圖像的整數倍縮小

,得到如下信号,左邊為信号①在時間域的表現形式,右邊為信号①的振幅譜。

[數字圖像處理]數字圖像的整數倍縮小

        信号②:選擇采樣時間

[數字圖像處理]數字圖像的整數倍縮小

,可得到如下信号,左邊為信号②在時間域的表現形式,右邊為信号②的振幅譜。

[數字圖像處理]數字圖像的整數倍縮小

如上圖所示,信号②發生了混淆現象。為了避免混淆現象,我們此時必須使用濾波器,将會發生混淆的部分完全削除,所得到的信号就不會混淆。此時,将不會發生混淆的縮小法,稱為理想的縮小法。理想的縮小法如下所示。

[數字圖像處理]數字圖像的整數倍縮小

       有一個地方需要注意的,在介紹數字圖像的整數倍擴大法的時候,我們所使用的濾波器的振幅特性,根據擴大倍數的變化而變化。而縮小法的時候,所用的濾波器的振幅始終為1。其理由是,在降采樣(Down-Sampling)的時候,已經進行了振幅調整,是以不需要在濾波處理階段調整其振幅。        與擴大法一緻,理想的縮小法也需要理想的濾波器,是以無法實作。也就是混淆無法完全避免,隻能減小混淆現象。

2.常用縮小法

        2.1直接降采樣法

        使用濾波器,直接進行降采樣處理的方法,稱之為直接降采樣法。由于直接降采樣法相當于使用了全通濾波器,是以無法減小混淆現象 ,是以一般使用。其步驟如下所示,縮小D倍的時候,将原信号的每D個信号中,保留開始的一個,将剩餘的D-1個信号直接删除即可。

[數字圖像處理]數字圖像的整數倍縮小

        2.2平均操作法

        首先,使用平均濾波器,然後在進行降采樣的方法,稱之為平均操作法。此方法可以減小混淆現象,比直接降采樣法要好。其步驟如下所示,縮小D倍的時候,首先先使用平均濾波器,然後将原信号的每D個信号中,保留開始的一個,将剩餘的D-1個信号删除。

[數字圖像處理]數字圖像的整數倍縮小

        2.3上述兩種方法的分析

        下圖為,縮小4倍的時候,以上兩種方法與理想的縮小法所使用的濾波器的振幅特性。

[數字圖像處理]數字圖像的整數倍縮小

由上圖可知,平均操作法更接近理想的濾波器的振幅特性。是以,平均操作法是可以在一定程度上減小混淆現象的。

3.簡單的縮小法的實作(Matlab)和性能分析

       本次所使用的圖檔如下所示,以下圖檔均是用Matlab制作的,共3枚。

[數字圖像處理]數字圖像的整數倍縮小
[數字圖像處理]數字圖像的整數倍縮小
[數字圖像處理]數字圖像的整數倍縮小

        使用上述兩種方法,進行4倍縮小,可以得到以下結果。左邊為直接降采樣法的結果,右邊為平均操作法的結果。

[數字圖像處理]數字圖像的整數倍縮小

從直接使用降采樣法的結果看來,我們已經看到了明顯的混淆。而使用平均操作法縮小的圖像,混淆現象已經得到了改善。

close all;
clear all;
clc;

f = imread('./cheer/maru_360(cheer).tif');
f = mat2gray(f,[0 255]);

D = 4;  %縮小率

[M,N] = size(f);
g_down = zeros(ceil(M/D),ceil(N/D));
[P,Q] = size(g_down);

for x = 0:1:(P-1)     
   for y = 0:1:(Q-1)
       g_down(x+1,y+1) = f((x*D)+1,(y*D)+1); 
   end
end

figure();
subplot(1,2,1);
imshow(f,[0 1]);
xlabel('a).Original Image');

subplot(1,2,2);
imshow(g_down,[0 1]);
xlabel('b).Ruselt of downsampled');
f = imread('./cheer/maru_360(cheer).tif');
f = mat2gray(f,[0 255]);

D = 4;  %縮小率

[M,N] = size(f);
g_aver = zeros(ceil(M/D),ceil(N/D));
[P,Q] = size(g_aver);

H_aver = ones(D)/(D*D);  %%%%%
f_aver = imfilter(f,H_aver,'conv','symmetric','same');

for x = 0:1:(P-1)     
   for y = 0:1:(Q-1)
       g_aver(x+1,y+1) = f_aver((x*D)+1,(y*D)+1); 
   end
end

figure();
subplot(1,2,1);
imshow(f,[0 1]);
xlabel('a).Original Image');

subplot(1,2,2);
imshow(g_aver,[0 1]);
xlabel('a).Ruselt of average filter + downsampled');
           

參考文獻 貴家 仁志,“ディジタル畫像の解像度変換 — 任意サイズへの畫像の変換,” インターフェース,CQ出版,1998年6月

貴家 仁志,“ディジタル畫像の解像度変換 — 畫像の拡大,” インターフェース,CQ出版,1998年4月

貴家 仁志,“ディジタル畫像の表現と階調変換,色間引きの原理,” インターフェース,CQ出版,1998年2月

《Digital Image Processing》 Rafael C. Gonzalez / Richard E. Woods

原文發于部落格:http://blog.csdn.net/thnh169/ 

繼續閱讀