摘 要 本論文首先簡要介紹了數(shù)字圖像處理技術(shù)的發(fā)展歷程、研究內(nèi)容與應(yīng)用領(lǐng)域,最后重點(diǎn)介紹了數(shù)字圖像處理技術(shù)在MATLAB中的具體應(yīng)用,通過邊緣檢測試驗(yàn)在MATLAB上運(yùn)行程序代碼得到運(yùn)行結(jié)果,對比圖像處理前后異同可以加深對這門課程的理解,為以后在學(xué)習(xí)和工作中應(yīng)用這門理論打下堅(jiān)實(shí)的基礎(chǔ)。
關(guān)鍵詞 數(shù)字圖像處理技術(shù) MATLAB程序代碼 異同
一、數(shù)字圖像處理技術(shù)簡介
數(shù)字圖像處理的發(fā)展與計(jì)算機(jī)以及硬件技術(shù)的發(fā)展是緊密聯(lián)系的, 20世紀(jì)60年代到80年代中期,這個(gè)時(shí)期的圖像處理系統(tǒng)采用機(jī)箱式結(jié)構(gòu);20世紀(jì)80年代中期~20世紀(jì)90年代初期,這個(gè)階段的主要特點(diǎn)是小型化,采用插卡式,采用雙屏操作方式;從20世紀(jì)90年代開始,隨著運(yùn)算能力很強(qiáng)的數(shù)字信號處理器(DSP)的問世,使現(xiàn)代圖像處理系統(tǒng)進(jìn)入了和計(jì)算機(jī)緊密結(jié)合的全數(shù)字階段。
數(shù)字圖像處理技術(shù)主要研究的內(nèi)容:圖像變換、圖像編碼壓縮、圖像增強(qiáng)和復(fù)原、圖像分割、圖像分類(識別)等,廣泛應(yīng)用在遙感探測、生物醫(yī)學(xué)、交通運(yùn)輸、安全檢測等領(lǐng)域。
二、邊緣檢測試驗(yàn)在數(shù)字圖像處理技術(shù)上的具體應(yīng)用
將數(shù)字圖像處理程序代碼在MATLAB軟件上運(yùn)行并得到運(yùn)行結(jié)果,對比圖像處理前后異同點(diǎn),加深對數(shù)字圖像處理技術(shù)理論知識的理解。下面通過實(shí)驗(yàn)來看一下數(shù)字圖像處理技術(shù)在MATLAB上的具體應(yīng)用。
(1)邊緣檢測原理簡介
邊緣檢測是圖像處理和計(jì)算機(jī)視覺中的基本問題,邊緣檢測的目的是標(biāo)識數(shù)字圖像中亮度變化明顯的點(diǎn)。圖像屬性中的顯著變化通常反映了屬性的重要事件和變化。 這些包括豍深度上的不連續(xù)、豎表面方向不連續(xù)、豏物質(zhì)屬性變化和豐場景照明變化。邊緣檢測是圖像處理和計(jì)算機(jī)視覺中,尤其是特征提取中的一個(gè)研究領(lǐng)域。
(2)邊緣檢測的檢測方法
有許多用于邊緣檢測的方法, 他們大致可分為兩類:基于搜索和基于零交叉。
基于搜索的邊緣檢測方法首先計(jì)算邊緣強(qiáng)度, 通常用一階導(dǎo)數(shù)表示, 例如梯度模,然后,用計(jì)算估計(jì)邊緣的局部方向, 通常采用梯度的方向,并利用此方向找到局部梯度模的最大值。
基于零交叉的方法找到由圖像得到的二階導(dǎo)數(shù)的零交叉點(diǎn)來定位邊緣。 通常用拉普拉斯算子或非線性微分方程的零交叉點(diǎn)。
濾波做為邊緣檢測的預(yù)處理通常是必要的,通常采用高斯濾波。
(3)邊緣檢測實(shí)驗(yàn)代碼及其運(yùn)行結(jié)果
img=imread('C:\Documents and Settings\Administrator\桌面\5.jpg'); %讀入圖像
subplot(2,4,1);
img=rgb2gray(img);
imshow(img);title('原始圖像');
I=im2double(img);
%Roberts算子%
x_mask=[1 0;0 -1];
y_mask=rot90(x_mask);
dx=imfilter(I,x_mask);
dy=imfilter(I,y_mask);
grad=sqrt(dx.*dx+dy.*dy);
grad=mat2gray(grad);
level=graythresh(grad);
BW=im2bw(grad,level);
subplot(2,4,2);
imshow(BW);
title('Roberts算子');
%Prewitt算子%
y_mask=[-1 -1 -1;0 0 0;1 1 1];
x_mask=y_mask';
dx=imfilter(I,x_mask);
dy=imfilter(I,y_mask);
grad=sqrt(dx.*dx+dy.*dy);
grad=mat2gray(grad);
level=graythresh(grad);
BW=im2bw(grad,level);
subplot(2,4,3);
imshow(BW);
title('Prewitt算子');
%Sobel算子%
y_mask=[-1 -2 -1;0 0 0;1 2 1];
x_mask=y_mask';
dx=imfilter(I,x_mask);
dy=imfilter(I,y_mask);
grad=sqrt(dx.*dx+dy.*dy);
grad=mat2gray(grad);
level=graythresh(grad);
BW=im2bw(grad,level);
subplot(2,4,4);
imshow(BW);
title('Sobel算子');
%Laplacian算子
mask=[0 -1 0;-1 4 -1;0 -1 0];
dx=imfilter(I,mask);
grad=mat2gray(dx);
level=graythresh(grad);
BW=im2bw(grad,level);
subplot(2,4,5);
imshow(BW);
title('Laplacian算子');
%LoG算子%
mask=[0 0 -1 0 0;0 -1 -2 -1 0;-1 -2 16 -2 -1;0 -1 -2 -1 0;0 0 -1 0 0];
dx=imfilter(I,mask);
grad=mat2gray(dx);
level=graythresh(grad);
BW=im2bw(grad,level);
subplot(2,4,6);
imshow(BW);
title('LoG算子');
%Canny算子%
BW1=edge(I,'canny');
subplot(2,4,7);
imshow(BW1);
title('Canny算子');
三 、結(jié)語
數(shù)字圖像處理技術(shù)具有再現(xiàn)性好,處理精度高,適用面寬,靈活性好等優(yōu)點(diǎn)。隨著電子計(jì)算機(jī)的不斷發(fā)展和人們對數(shù)字圖像處理越來越高的重視,數(shù)字圖像處理技術(shù)正在向處理算法更優(yōu)化,處理速度更快,處理后的圖像清晰度更高的方向發(fā)展,從而最終實(shí)現(xiàn)實(shí)現(xiàn)圖像的智能生成、處理、識別和理解。借助MATLAB軟件運(yùn)行簡單的數(shù)字圖像處理程序,可以對一些簡單的圖像進(jìn)行變換,對比前后圖像變化,加深對所學(xué)的理論知識的理解,從而為將來繼續(xù)深入學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
參考文獻(xiàn):
[1]章毓晉.圖象處理和分析[M].北京:清華大學(xué)出版社,1999 .
[2]郎銳.數(shù)字圖像處理學(xué)[M].北京:希望電子出版社,2002.
[3]周明全.圖像圖形技術(shù)與應(yīng)用進(jìn)展[M].北京: 北京師范大學(xué)出版社, 2008:71-72,129-132,149-150.
[4]岡薩雷斯.數(shù)字圖像處理[M].電子工業(yè)出版社,2003.