關(guān)雪梅
(遼寧對外經(jīng)貿(mào)學院 基礎(chǔ)課教研部,遼寧 大連 116052)
近幾年來計算機圖形圖像處理技術(shù)飛速發(fā)展,已成功應用于社會與成像有關(guān)的領(lǐng)域.計算機對圖像進行處理分為原始圖像處理,圖像特征提取和圖像識別分析三個部分.原始圖像的處理包括圖像增強、平滑濾波、圖像銳化等內(nèi)容.原始圖像在傳輸?shù)倪^程中會受到外界環(huán)境等諸多因素的影響,因而我們需要對原始圖像進行處理,提取有用的圖像數(shù)據(jù).本文主要研究用Matlab進行圖像銳化處理.對圖像進行銳化處理的目的有兩個:一是加強圖像邊緣效果,使模糊圖像有較高的辨識度,圖像的這種模糊往往不是由于操作不當,而是在獲取圖像的時候受到的影響.二是對研究對象的邊界進行提取,進行圖像分割,更利于識別目標圖像.經(jīng)過銳化處理后的圖像,圖像的效果更適合人進行識別和觀察.
Matlab的全稱為Matrix Laboratory,矩陣實驗室.20世紀70年代末,它是由美國CleveMoler博士在講授數(shù)據(jù)分析和矩陣理論等課程時編寫的軟件包Linpack和Eispack組成.是一種非常便捷的工具軟件,應用于數(shù)學、計算機、遙感、信息工程、機械工程等領(lǐng)域.Matlab軟件之所以被廣泛應用于圖像處理領(lǐng)域是因為它特有的數(shù)學矩陣運算功能.Matlab軟件在對圖像進行處理時,首先要將原始圖像經(jīng)過數(shù)字化運算形成新的矩陣對應的數(shù)字圖像,然后利用Matlab軟件中強大的圖像處理工具箱(Image Processing Toolbox)中的圖像處理系統(tǒng)函數(shù)對數(shù)字圖像進行處理操作,這樣就可以把用戶從繁瑣的數(shù)學計算和分析中解脫出來.Matlab的運算功能極強,廣泛應用在科學計算領(lǐng)域,尤其對矩陣處理能力簡單高效.本文主要是運用Matlab強大的科學運算能力和矩陣處理能力進行數(shù)字圖像銳化處理研究.
邊緣是圖像最基本的特征,圖像邊緣是由灰度的不連續(xù)性而產(chǎn)生的,Roberts邊緣檢測算子是一種局部差分算子尋找邊緣的算子.它的原理是把圖像對角線方向兩個相鄰的像素做差運算來近似梯度的幅值,從而檢測出圖像邊緣.
依據(jù)梯度值可以用互相垂直方向的差分來估計,Roberts算子采用的是沿對角線方向相鄰兩像素進行差運算:
ΔxR=R(x,y)-R(x-1,y-1)
ΔyR=R(x-1,y)-R(x,y-1)
它的幅值為:

Roberts算子是一種比較簡單的圖像銳化算子,對于處理低噪音陡峭的圖像效果不錯,但是通過Roberts邊緣檢測算子提取圖像的邊緣一般都是比較粗糙,在特殊圖像邊緣處理中不是很理想.
Sobel算子也是一種圖像邊界信息檢測算子,提取圖像明暗度的近似值進行運算的差分算子.在數(shù)字圖像中一般圖像的邊界部分明暗改變比較顯著,一般我們把在該區(qū)域內(nèi)超過一定范圍的點作為我們要處理的邊界點.Sobel算子與Prewitt算子有類似之處,它也有水平和垂直的3*3模板的兩個模板.F(x,y)定義如下:


則:S(x,y)=max(A,B)
經(jīng)過Sobel算子進行圖像處理后,圖像的幅值會有所增強.
偏導數(shù)計算公式如下:
Sx=(a0+ca1+a2)-(a6+ca5+a4)
Sy=(a0+ca1+a2)-(a6+ca5+a4)
以下為進行垂直梯度模板和水平梯度模板的檢測方法,檢測原理如下:
其中水平檢測模板和垂直檢測模板分別為:
一般來說,相距之差越大,對圖像處理結(jié)果的影響就越大,上述兩個公式對垂直和水平方向產(chǎn)生的影響最大,經(jīng)過數(shù)據(jù)處理運算就會得出一副邊緣圖像.
Laplacian算子可以有效地提取圖像的邊界信息,它可以把圖像中的高頻部分和低頻部分進行區(qū)分,從而達到邊緣檢測的目的.由于圖像的低頻部分一般都是圖像背景,所以在進行圖像邊緣檢測的過程中,同時保留高頻部分和低頻部分,以保證圖像的信息完整.把通過Laplacian算子檢測出的邊界信息和原始圖像進行累加運算,就可以達到圖像信息增強的目的.Laplacian算子模板如下:
2F(x,y)=F(x-1,y-1)+F(x-1,y)+F(x-1,y+1)+F(x,y+1)+
F(x+1,y+1)+F(x+1,y)+F(x+1,y-1)+F(x,y-1)-8F(x,y)
因而采用Laplacian算子進行圖像增強的方法為:
FE(x,y)=F(x,y)-Δ2F(x,y)
其中,F(xiàn)(x,y)為原始數(shù)字圖像,Δ2F(x,y)是通過Laplacian算子進行邊緣檢測后的圖像,把后者公式帶入前者可得圖像為:
FE=9F(x,y)-F(x-1,y-1)-F(x-1,y)-F(x-1,y+1)-F(x,y-1)-
F(x,y+1)-F(x+1,y-1)-F(x+1,y)-F(x+1,y+1)
Laplacian算子進行圖像邊緣檢測,計算簡單,在圖像線處理過程中很有優(yōu)勢,對于目標圖像和背景圖像差別很大的數(shù)字圖像,Laplacian算子可以達到很好的處理效果.
在使用微分算子進行圖像邊緣檢測時通常選取Prewitt算子,在進行圖像處理時首先進行梯度的平均值計算,在通過差分來實現(xiàn)最終的處理結(jié)果.Prewitt算子的設(shè)計原理是在特定區(qū)域進行兩個方向樣本和圖像進行卷積運算來實現(xiàn)的,可以通過這兩個方法來進行垂直方向和水平方向測試.
利用Prewitt算子對F(x,y)的定義如下:


P(x,y)=max[G(x),G(y)]
以下為進行垂直梯度模板和水平梯度模板的檢測方法,檢測原理如下:
其中水平檢測模板和垂直檢測模板分別為:
可以采用Prewitt算子通過像素求平均值對圖像進行邊緣銳化處理,在邊界處達到了極值檢測邊緣,但基本丟失了角點信息,銳化圖像的精確度不是很高.
利用Matlab平臺進行圖像銳化處理,Roberts算子、Sobel算子、Laplacian算子和Prewitt算子實現(xiàn)圖像銳化的程序如下:
Yuantu=imread(′yuantu.png′);%提取圖像
BW1=edge(yuantu,′roberts′);%用Roberts算子進行邊緣檢測
BW2=edge(yuantu,′sobel′);%用Sobel算子進行邊緣檢測
BW3=edge(yuantu,′Laplacian′);%用Laplacian算子進行邊緣檢測
BW4=edge(yuantu,′prewitt′);%用prewitt算子進行邊緣檢測
subplot(2,3,1),imshow(BW1);
title(′roberts edge check′);
subplot(2,3,2),imshow(BW2);
title(′sobel edge check′);
subplot(2,3,3),imshow(BW3);
title(′laplacian edge check′);
subplot(2,3,4),imshow(BW4);
title(′prewitt edge check′);
處理效果如下圖所示:

lena原圖 sobel圖 Laplacian圖 Roberts圖 prewitt圖
本文主要是采用Matlab技術(shù)對圖像進行銳化處理算法研究,實驗結(jié)果說明利用Matlab進行圖像銳化處理效率高,并且在圖像處理方面有很高的實用價值.
通過上述實驗,我們可以看出采用Laplacian算子進行圖像邊緣檢測時的方向性不是很準確,在處理過程中經(jīng)常丟失方向信息,導致處理后的圖像邊界信息不連續(xù),對噪音較敏感.Roberts算子進行圖像銳化處理簡單并且容易實現(xiàn),但對噪音的要求較高,在較小的情況下垂直和水平兩個方向的圖像銳化效果比較不錯.Prewitt算子和Sobel算子比較類似,在處理圖像的權(quán)值設(shè)置有所不同,都具有去噪的能力,它們都能檢測出圖像的一些虛假邊界信息,檢測結(jié)果圖像像素較寬,Sobel算子對漸變的灰度圖像處理效果尤為突出.
本文主要以Matlab作為工具軟件,重點對SOBEL算子、Roberts算子、prewitt算子及Laplacian算子進行圖像邊緣檢測分析研究.Matlab軟件功能非常強大,運算方法簡潔易理解,通過簡單的程序就可以完成相對復雜的圖像處理過程,可以既快又精準地完成數(shù)字圖像轉(zhuǎn)換,在一定程度上推進了圖像處理的全過程,達到邊緣檢測滿意的效果.