呂敬蘭
摘 要:圖像是人類賴以獲取信息的最重要來源之一。圖像技術(shù)與計算機技術(shù)不斷融合,出現(xiàn)了一系列圖像處理軟件,其中最典型的是 Matlab,該軟件為圖像技術(shù)的發(fā)展提供了強大支持。本文通過實例闡述Matlab 在圖像處理中的應(yīng)用,以圖像增強、圖像壓縮為例,給出了實現(xiàn)圖像處理的程序代碼,為今后進一步研究打下了基礎(chǔ)。
關(guān)鍵詞:Matlab;圖像增強;圖像壓縮
中圖分類號:G642 文獻標識碼:B 文章編號:1002-7661(2016)02-002-01
一、引言
Matlab軟件是矩陣實驗室的簡稱,是由美國 Math Works 公司于1984 年推出,歷經(jīng)十幾年的發(fā)展和競爭,現(xiàn)已成為(IEEE) 國際公認的最優(yōu)秀的科技應(yīng)用軟件之一[1]。Matlab是數(shù)字圖像處理、計算機圖形學(xué)、電子線路、電機學(xué)、自動控制、通信技術(shù)、物理、力學(xué)等領(lǐng)域的科研人員所必須掌握的一種程序設(shè)計語言。目前基于Windows 系統(tǒng)的最新版本已上升到Matlab6.5,它繼承了以往版本的優(yōu)點, 非常容易使用。Matlab最基本的數(shù)據(jù)結(jié)構(gòu)是數(shù)組,數(shù)字圖像用數(shù)組(矩陣)存儲,矩陣中的一個元素對應(yīng)于圖像的一個像素,這意味著 Matlab矩陣運算功能可以應(yīng)用于圖像處理。
數(shù)字圖像處理是通過計算機對圖像進行去除噪聲、增強、復(fù)原、分割、提取特征等處理的方法和技術(shù)。一般來講,圖像處理主要包括三個方面:
1、提高圖像的視感質(zhì)量,如改變圖像亮度和彩色,增強或抑制某些成分,對圖像進行幾何變換等,以改善圖像的質(zhì)量。
2、提取圖像中所包含的某些特征或特殊信息,所提取出來的特征或信息往往為計算機分析圖像提供便利。提取的特征包括很多方面,如頻域特征、灰度特征、顏色特征、邊界特征、區(qū)域特征、文理特征、形狀特征、拓撲特征和關(guān)系結(jié)構(gòu)等。
3、圖像數(shù)據(jù)的變換、編碼和壓縮,以便于圖像的存儲和傳輸。
數(shù)字圖像處理的過程其實就是對圖像的一種運算過程,從技術(shù)上來說,數(shù)字圖像處理分為空間域和頻率域處理。本文通過2個應(yīng)用實例,驗證了 Matlab 圖像處理所得到的效果。
二、圖像增強的應(yīng)用
如果不考慮圖像降質(zhì),僅突出圖像中所感興趣的部分,可以強化圖像的某些分量。例如,強化圖像高頻分量,可使圖像中物體輪廓清晰、細節(jié)明顯;強化低頻分量可以減少圖像中噪聲的影響。 圖像復(fù)原要求對圖像降質(zhì)的原因有一定的了解, 一般講應(yīng)根據(jù)降質(zhì)過程建立降質(zhì)模型,再采用某種濾波方法,恢復(fù)或重建原來的圖像。
小波分析方法在圖像處理方面具有很多優(yōu)點。經(jīng)二維小波分解后,圖像的輪廓主要體現(xiàn)在低頻部分,而細節(jié)部分則體現(xiàn)在高頻部分。因此,通過對低頻分解系數(shù)進行增強處理,對高頻分解系數(shù)進行衰減處理,即可以達到圖像增強的作用。 Matlab用于圖像增強的一個實例如下:
function exam1()
I=imread(' … \lena.bmp');
subplot(1,2,1); imshow(I)
colormap(gray);title(' 原始圖像 ')
[a,b]=wavedec2(I,2,'sym4'); len=length(a);
for i=1:len
if(a(i)>300)
a(i)=2*a(i);
else
a(i)=0.5*a(i);
end
end
nx=waverec2(a, b, 'sym4');subplot(1,2,2);
image(nx);
title(' 增強圖像 ')
三、圖像壓縮的應(yīng)用
圖像數(shù)據(jù)的特點之一是信息量大。 一幅 512×512,灰度等級為8b 的圖像,其數(shù)據(jù)量為256KB。在現(xiàn)代通信中,圖片傳輸成了一個重要的研究課題,如何盡可能減少數(shù)據(jù)的傳輸量,并保證圖像的質(zhì)量,是目前人們面對的一大難題。采用編碼壓縮技術(shù),可以減少數(shù)據(jù)的傳輸量、提高通信速度。
在某些情況下,如果對圖像的要求不高,可以對圖像進行有目的的壓縮。 作為一個應(yīng)用實例, 可用Matlab把一個 512×512 的圖像壓縮為 256×256 的圖像。圖像壓縮的實現(xiàn)代碼如下:
Function exam2 ()
I=imread(' … \lena.bmp');I=double(I)/255;
[m,n]=size(I);
figure(1)
imshow(I)
title(sprintf(' 原始圖片: %4d * %4d',size(I)));
A=[];B=[];
for i=1:2:n-1
A=[A,(I(:,i)+I(:,i+1))/2];
end
for i=1:2:m-1
B=[B;(A(i,:)+A(i+1,:))/2];
end
figure(2)
imshow(B)
title(sprintf(' 壓縮圖片: %4d * %4d',size(B)));
與圖像處理系統(tǒng)相關(guān)的軟件和圖像處理中圖像變換的方法有很多種,Matlab 軟件在圖像處理當中有著很多的優(yōu)點,本文介紹了Matlab的圖像處理功能,以圖像增強、圖像壓縮作為應(yīng)用實例,給出了 Matlab 實現(xiàn)的程序代碼,為今后進一步研究打下了基礎(chǔ)。
參考文獻:
[1] 岡薩雷斯. 數(shù)字圖像處理(第二版)[M].北京:電子工業(yè)出版社,2009.8
[2] 藍章禮.數(shù)值圖像處理與數(shù)值通信 [M].北京:清華大學(xué)出版社,2009.3
[3] 曹 弋.MATLAB 教程及實例[M].北京:機械工業(yè)出版社,2009.6