摘 要:數字圖像邊緣檢測的設計大多是基于Matlab軟件設計的,這與工程化還有一定的距離。針對這一不足,給出了數字圖像邊緣檢測Sobel算子以及程序設計流程,并在CCS v3.1的軟件仿真環境下進行仿真實驗。通過3個實例的分析,驗證了基于CCS的數字圖像邊緣檢測設計的可行性。結果表明,使用Sobel算子實現了圖像邊緣檢測,這為圖像處理提供了一種硬件實現的方法。
關鍵詞:CCS; 邊緣檢測; Sobel算子; 數字圖像
中圖分類號:TN919.8 文獻標識碼:A
文章編號:1004-373X(2010)14-0056-02
Design of Digital Image Edge Detection Based on CCS
YANG Hong
(School of Electronic Engineering, Xi’an University of Post and Telecommunications, Xi’an 710061, China)
Abstract: The design of edge detection of digital image is mostly based on Matlab software design, so this is still a certain distance from the engineering. In response to this lack, the digital image edge detection algorithm based on Sobel operator and program design process is proposed, and the simulation experiment is done in the CCS v3.1 software simulation environment. The feasibility of this design of digital image edge detection based on CCS by analyzing three application examples is proved. The results show that the image edge detection is achieved by Sobel operator, a hardware implementation approach is provided for the image processing.
Keywords: CCS; edge detection; Sobel operator; digital image
基金項目:國家自然科學基金資助項目(40974078);陜西省自然科學基金資助項目(2007D15)
0 引 言
邊緣是圖像最基本的特征,圖像的輪廓、細節基本都存在于圖像的邊緣部分,它是圖像的最基本特征,在圖像分析中借助它能大大地減少所要處理的信息,又保留了圖像中物體的形狀信息[1-3]。因此,邊界檢測在圖像處理、模式識別和機器視覺等領域中有很重要的作用,它是底層視覺處理中最重要的環節之一。邊緣能勾畫出目標物體,使觀察者一目了然,邊緣蘊含豐富的內在信息(方向、階躍性質和形狀等)。從本質上來說,圖像邊緣是圖像局部特征不連續性(灰度突變、顏色突變和紋理結構突變等)的反映,它標志著一個區域的終結和另一個區域的開始。
兩個具有不同灰度值的相鄰區域之間總存在邊緣,邊緣是灰度值不連續的結果,這種不連續性通常可以利用求導數的方法方便地檢測到,一般常用一階導數和二階導數來檢測邊緣。邊緣檢測的基本思想是首先利用邊緣增強算子,突出圖像中的局部邊緣,然后定義像素的“邊緣強度”,通過設置門限的方法提取邊緣點集[4-5]。經典的邊緣檢測方法是對原始圖像中像素的某小鄰域來構造邊緣檢測算子。常用的邊緣檢測算子有Sobel算子、Robert算子、Prewitt算子、LOG算子和Canny算子。邊緣檢測的設計大多基于Matlab軟件設計的,這與工程化還有一定的距離。針對這一不足,提出了基于CCS的數字圖像邊緣檢測的設計,為圖像處理提供了一種硬件設計的方法。
1 Sobel算子
Sobel算子是一個梯度算子,一幅數字圖像的一階導數是基于各種二維梯度的近似值[6-7]。圖像f(x,y)在位置(x,y)的梯度由式(1)定義:
f=Gx
Gy=fx
fy(1)
該算法是在圖像空間利用兩個方向模板與圖像進行鄰域卷積來完成的。這兩個方向模板一個檢測垂直邊緣,一個檢測水平邊緣。模板內的數字為模板系數,梯度方向與邊緣方向總是正交垂直的。
式(2)為水平梯度方向,用于檢測垂直邊緣:
M A=-101
-202
-101 (2)
式(3)為垂直梯度方向,用于檢測水平邊緣:
M B=121
000
-1-2-1(3)
模板元素和窗口像素之間的對應關系(以3×3窗口為例)定義如式(4)模板:
M i = Mi-1,-1 Mi-1,0 Mi-1,1
Mi0,-1 Mi0,0 Mi0,1
Mi1,-1 Mi1,0 Mi1,1 (4)
式(3)中i=1,2分別代表垂直、水平模板。設窗口的灰度為:
f =f(j-1,k-1)f(j-1,k)f(j-1,k+1)
f(j,k-1)f(j,k)f(j,k+1)
f(j+1,k-1)f(j+1,k)f(j+1,k+1) (5)
模板卷積過程就是求乘積的過程:
fi(j,k)=∑im=-1∑in=-1F(j+m,k+n)Mim,n(6)
式(6)中fi(j,k)為模板卷積法邊緣檢測的輸出,i=l/2(l為窗口寬度)。對于3×3窗口(l=1),將2個卷積的最大值賦予圖像中對應模板中心位置的像素,作為該像素的新灰度值,即:
fmax=max[fi(j,k)],i=1,2 (7)
邊緣點判斷是根據圖像邊緣附近的灰度變化較大特點,設置一閾值TH,當鄰域內的像素新灰度值TH時的像素點就作為邊緣點。
2 基于CCS的數字圖像邊緣檢測的設計
CCS v3.1(code composer studio IDE v3.1)是TI公司推出的集成可視化DSP軟件開發工具。它是一種針對TMS320系列DSP的集成開發環境,在Windows操作系統下,采用圖形接口界面,提供環境配置、源文件編輯、程序調試、跟蹤和分析等工具[8-10]。CCS有2種工作模式,即軟件仿真器模式和硬件在線編程模式。本文主要采用軟件仿真器模式,即可以脫離DSP芯片,在PC機上模擬DSP的指令集和工作機制,主要用于前期算法實現和調試。根據數字圖像Sobel算子邊緣檢測和DSP的特點,基于CCS的數字圖像Sobel算子的程序流程如圖1所示。
圖1 Sobel算子的程序流程
3 實驗結果
cameraman、lena、coins作為原始圖像分別如圖2(a)、圖3(a)、圖4(a)所示,使用Sobel算子所得的圖像分別如圖2(b)、圖3(b)、圖4(b)所示。分別比較原始圖像與使用Sobel算子所得的圖像,可以得出對圖像達到了邊緣檢測的效果。
圖2 cameraman原始圖像、使用Sobel算子所得的圖像
圖3 lena原始圖像、使用Sobel算子所得的圖像
圖4 coins原始圖像、使用Sobel算子所得的圖像
4 結 語
數字圖像邊緣檢測的設計大多基于Matlab軟件設計的,這與工程化還有一定的距離。針對這一不足,提出了基于CCS的數字圖像邊緣檢測的設計,使用Sobel算子實現了圖像邊緣檢測,為圖像處理提供一種硬件實現的方法。
參考文獻
[1]韓曉軍.數字圖像處理技術與應用[M].北京:電子工業出版社,2009.
[2]岡薩雷斯.數字圖像處理(Matlab版)[M].北京:電子工業出版社,2009.
[3]阮秋琦.數字圖像處理基礎[M].北京:清華大學出版社,2009.
[4]藍章禮,李益才.數字圖像處理與圖像通信[M].北京:清華大學出版社,2009.
[5]郭文強.數字圖像處理[M].西安:西安電子科技大學出版社,2009.
[6]馮新宇,方偉林,楊棟.基于中值濾波與Sobel,Canny算子的圖像邊緣檢測研究[ J] .黑龍江水專學報,2009,36(1):101-103.
[7]陳戈珩,王飛.基于Matlab的Sobel算子的指紋中心點定位[ J] .現代電子技術,2009,32(8):79-80.
[8]姜陽,周錫青.DSP原理與應用實驗[M].西安:西安電子科技大學出版社,2008.
[9]彭啟琮,管慶.DSP集成開發環境:CCS及DSP/BIOS的原理與應用[M].北京:電子工業出版社,2004.
[10]趙洪亮,卜凡亮,黃鶴松,等.TMS320C55x DSP應用系統設計[M].北京:北京航空航天大學出版社,2008.