圖像分割技術(shù)論文(2)
圖像分割技術(shù)論文
圖像分割技術(shù)論文篇二
圖像分割技術(shù)研究與應(yīng)用
摘 要: 圖像分割是指將一副圖像分解為若干互不交疊的有意義且具有相同屬性的區(qū)域。圖像分割是數(shù)字圖像處理中的一項關(guān)鍵技術(shù),其分割的準(zhǔn)確性直接影響后續(xù)任務(wù)的有效性,因此具有十分重要的意義?,F(xiàn)有的分割算法在不同程度上取得了一定的成功,但是圖像分割的很多問題還遠遠沒有解決,該方面的研究仍然面臨很多挑戰(zhàn)。文章分析了現(xiàn)有圖像分割的各種算法的特點以及存在的問題,對基于圖像分割的經(jīng)典算法進行改進,實現(xiàn)了一種新的分割方法,并將其應(yīng)用到機器視覺的相關(guān)產(chǎn)品當(dāng)中,取得了良好的效果。
關(guān)鍵詞: 數(shù)字圖像處理; 圖像分割; 分割算法; 機器視覺
中圖分類號:TP3 文獻標(biāo)志碼:A 文章編號:1006-8228(2015)01-26-03
Research and application of image segmentation technology
Wang Wei1, Zeng Xiaoneng2
(1. Changsha Information technology School, Changsha, Hunan 410116, China; 2. Central South University)
Abstract: Image segmentation is about decomposing an image into a number of mutually non-overlapping region while having the same attribute. It is a key technology of digital image processing, which directly affects the effectiveness of segmentation accuracy of subsequent tasks, hence having important significance. The existing segmentation algorithm achieved success to some extent, but the image segmentation problem is far from being solved, research in this area still faces many challenges. The existing problems of image segmentation methods are analyzed. The classical algorithm for image segmentation is improved. A new segmentation method is given and applied to the machine vision-related products which achieve good results.
Key words: digital image processing; image segmentation; segmentation algorithm; machine vision
0 引言
圖像分割是數(shù)字圖像處理中的一項關(guān)鍵技術(shù),它通常用于對圖像進行分析、識別、編碼等處理之前的預(yù)處理環(huán)節(jié),其分割的準(zhǔn)確性直接影響后續(xù)任務(wù)的有效性,因此具有十分重要的意義。自上世紀(jì)70年代以來,已經(jīng)出現(xiàn)了多種圖像分割方法,而每一種圖像分割方法都是為了解決一些特定的應(yīng)用問題。該技術(shù)成功地應(yīng)用于許多領(lǐng)域,例如:交通路口的電子警察、光學(xué)字符識別(OCR)、指紋識別、機動車牌號識別等等。
圖像分割是指將一副圖像分解為若干互不交疊的有意義且具有相同屬性的區(qū)域。好的圖像分割應(yīng)具備的特性:①分割出來的各區(qū)域?qū)δ撤N性質(zhì)如灰度、紋理而言具有相似性,區(qū)域內(nèi)部比較平整;②相鄰區(qū)域?qū)Ψ指钏罁?jù)的性質(zhì)有明顯的差異;③區(qū)域邊界上是明確和規(guī)整的[1]。
大多數(shù)圖像分割方法只是部分滿足上述特征。如果強調(diào)分割區(qū)域的同性質(zhì)約束,則分割區(qū)域很容易產(chǎn)生大量小孔和不規(guī)則邊緣;若強調(diào)不同區(qū)域間性質(zhì)差異的顯著性,則易造成不同區(qū)域的合并。具體處理時,不同的圖像分割方法總是在各種約束條件之間尋找一種合理的平衡。
雖然圖像分割方法已經(jīng)有了很大的發(fā)展,但由于它的復(fù)雜性,仍有很多問題沒有很好地得到解決。因此,人們至今還一直在努力發(fā)展新的、更有潛力的分割算法,以期實現(xiàn)更通用、更完美的分割結(jié)果。實踐表明,對圖像分割理論與技術(shù)的進一步研究仍然具有非常重要的意義。
本文首先對數(shù)字圖像分割的一些經(jīng)典分割方法作了概述,然后分析了現(xiàn)有項目開發(fā)中使用的圖像分割方法所存在的問題,最后基于經(jīng)典算法進行技術(shù)改進,實現(xiàn)了一種新的分割方法,并將其應(yīng)用到實際的產(chǎn)品當(dāng)中,取得了良好的效果。
1 圖像分割方法的現(xiàn)狀
從上世紀(jì)五十年代開始,學(xué)者一直熱衷于研究圖像分割技術(shù)。迄今為止,已提出上千種圖像分割算法,依這些算法對圖像處理的特點,主要可分為以下幾類方法[2]。
1.1 閾值分割法
閾值分割法作為一種常見的區(qū)域并行技術(shù),它通過設(shè)置閥值,把像素點按灰度級分若干類,從而實現(xiàn)圖像分割。由于是直接利用圖像的灰度特性,因此計算方便簡明、實用性強。顯然,閾值分割方法的關(guān)鍵和難點是如何取得一個合適的閾值,而實際應(yīng)用中閾值設(shè)定易受噪聲和光亮度影響。近年來關(guān)于閾值分割法主要有[3]:最大相關(guān)性原則選擇閾值法、基于圖像拓?fù)浞€(wěn)定狀態(tài)法、灰度共生矩陣法、熵法、峰值和谷值分析法等。其中,自適應(yīng)閾值法、最大熵法、模糊閾值法、類間閾值法是對傳統(tǒng)閾值法改進較成功的幾種算法。更多的情況下,閾值的選擇會綜合運用兩種或兩種以上的方法,這也是圖像分割發(fā)展的一個趨勢。例如,將圖像的灰度直方圖看作是高斯分布的選擇法與自適應(yīng)定向正交投影高斯分解法的結(jié)合,較好地擬合了直方圖的多峰特性,從而得到了更為準(zhǔn)確的分割效果。閾值法的缺陷主要在于它僅僅考慮了圖像的灰度信息,而忽略了圖像的空間信息。對于非此即彼的簡單圖像處理(如一些二值圖像的處理)是有效的,但是對于圖像中不存在明顯的灰度差異或各物體的灰度值范圍有較大重疊的圖像分割問題則難以得到準(zhǔn)確的分割效果。 1.2 基于邊緣的圖像分割法
邊緣總是以強度突變的形式出現(xiàn),可以定義為圖像局部特征的不連續(xù)性,如灰度的突變、紋理結(jié)構(gòu)的突變等。邊緣常常意味著一個區(qū)域的終結(jié)和另一個區(qū)域的開始,圖像的邊緣包含了物體形狀的重要信息,它不僅在分析圖像時大幅度地減少了要處理的信息量,還保護了目標(biāo)的邊界結(jié)構(gòu)。對于邊緣的檢測常常借助空間微分算子進行,通過將其模板與圖像卷積完成。兩個具有不同灰度值的相鄰區(qū)域之間總存在灰度邊緣,而這正是灰度值不連續(xù)的結(jié)果,這種不連續(xù)可以利用求一階和二階導(dǎo)數(shù)檢測到。
當(dāng)今的局部技術(shù)邊緣檢測方法中,主要有一次微分(Sobel算子、Roberts算子)、二次微分(拉普拉斯算子等)和模板操作(Prewitt算子、Kirsch算子和Robinson算子)等。這些邊緣檢測器對邊緣灰度值過渡比較尖銳且噪聲較小等不太復(fù)雜的圖像可以取得較好的效果,但對于邊緣復(fù)雜(如邊緣模糊、邊緣丟失、邊緣不連續(xù)等)的圖像效果不太理想。此外,噪聲的存在使基于導(dǎo)數(shù)的邊緣檢測方法效果明顯降低,在噪聲較大的情況下所用的邊緣檢測算子通常都是先對圖像進行適當(dāng)?shù)钠交?,抑制噪聲,然后求?dǎo)數(shù),或者對圖像進行局部擬合,然后再用擬合光滑函數(shù)的導(dǎo)數(shù)來代替直接的數(shù)值導(dǎo)數(shù),如Marr算子、Canny算子等。有關(guān)學(xué)者曾給出了一種基于彩色邊緣的圖像分割方法,這是對傳統(tǒng)邊緣分割方法只適用于灰度圖像狀況的一個突破。
在未來的研究中,用于提取初始邊緣點的自適應(yīng)閾值選取、用于圖像層次分割的更大區(qū)域的選取,以及如何確認(rèn)重要邊緣去除假邊緣將變得非常重要。
1.3 基于聚類的分割法
對灰度圖像和彩色圖像中相似灰度或色度合并的方法稱之為聚類,通過聚類將圖像表示為不同區(qū)域即所謂的聚類分割方法。此方法的實質(zhì)是將圖像分割問題轉(zhuǎn)化為模式識別的聚類分析,如k均值、參數(shù)密度估計、非參數(shù)密度估計等方法都能用于圖像分割。常用的聚類分割有顏色聚類分、灰度聚類分割和像素空間聚類分割。
顏色聚類分割實際上是將相似的幾種顏色合并為一色,描述顏色近似程度的指標(biāo)是色差,在標(biāo)準(zhǔn)CIE勻色空間中,色差是用兩個顏色的距離來表示的。但是顯示器采用的RGB空間是顯示器的設(shè)備空間,與CIE系統(tǒng)的真實三原色不同,為簡單起見,一般采用RGB色空間中的距離來表示。
灰度聚類分割就是只把圖像分成目標(biāo)和背景兩類,而且僅考慮像素的灰度,這就是一個在一維空間中把數(shù)據(jù)分成兩類的問題。通過在灰度空間完成聚類,得到兩個聚類中心(用灰度值表征),聚類中心連線的中點便是閾值。顯然這個概念也可以輕松地延擴至多閾值和動態(tài)閾值的情況。
像素空間聚類分割在某些特定的尺度上觀察圖像,比如說把圖像信號通過一個帶通濾波器,濾波的結(jié)果將使圖像的局部信息更好地被表達。通過一個多尺度分解,輪廓信息可以在大尺度圖像上保留下來,細節(jié)或者突變信息可以在中小尺度上體現(xiàn),基于多尺度圖像特征聚類的分割方法漸漸得到了人們的關(guān)注。
1.4 函數(shù)優(yōu)化法
基于函數(shù)優(yōu)化的分割方法是圖像分割中另一大類常用的方法,其基本思路是給出一個目標(biāo)函數(shù),通過該目標(biāo)函數(shù)的極大化或極小化來分割圖像,G.A.Hewer等人提出了一個具有廣泛意義的目標(biāo)函數(shù)。統(tǒng)計學(xué)分割法、結(jié)合區(qū)域與邊緣信息法、最小描述長度(MDL)法、基于貝葉斯公式的分割法等是目前幾種活躍的函數(shù)優(yōu)化法。
統(tǒng)計學(xué)分割法就是把圖像中各個像素點的灰度值看作是具有一定概率分布的隨機變量,且觀察到的實際物體是作了某種變換并加入噪聲的結(jié)果。統(tǒng)計學(xué)分割方法包括基于馬爾科夫隨機場法(MRF)、標(biāo)號法(Labeling)和混合分布法(Mixture)等。
結(jié)合區(qū)域與邊緣信息法是基于區(qū)域信息的圖像分割的主要方法。區(qū)域增長有兩種方式:一種是先將圖像分割成很多一致性較強的小區(qū)域,再按一定的規(guī)則將小區(qū)域融合成大區(qū)域,達到分割圖像的目的;另一種是事先給定圖像中要分割目標(biāo)的一個種子區(qū)域,再在種子區(qū)域基礎(chǔ)上將周圍的像素點以一定的規(guī)則加入其中,最終達到目標(biāo)與背景分離的目的。分裂合并法對圖像的分割是按區(qū)域生長法沿相反方向進行的,無需設(shè)置種子點,其基本思想是給定相似測度和同質(zhì)測度,從整幅圖像開始,如果區(qū)域不滿足同質(zhì)測度,則分裂成任意大小的不重疊子區(qū)域;如果兩個鄰域的子區(qū)域滿足相似測度則合并。
最小長度描述法(MDL)的基本思路是用一種計算機語言來描述圖像的區(qū)域和邊界信息,得到一個描述長度函數(shù),以此作為目標(biāo)函數(shù),根據(jù)圖像極小化描述長度從而得到分割結(jié)果。MDL準(zhǔn)則主要應(yīng)用于區(qū)域競爭中,即通過這種規(guī)則對比若干個種子區(qū)域,找出其中的壞種子。它常常與其他方法結(jié)合使用。
2 圖像分割技術(shù)的研究與應(yīng)用
2.1 圖像掃描分割
根據(jù)實際產(chǎn)品的需要,要根據(jù)分割的特殊要求,采用簡單的圖像掃描分割。
2.1.1 算法思想
獲取二值化要分割的圖像,然后轉(zhuǎn)換為圖像指針并獲取圖像的左右邊界、上下邊界,然后再分割圖像[4]。
2.1.2 分割過程實現(xiàn)
下面介紹基于FrameWork4.0,采用C#實現(xiàn)對圖像進行分割處理的主要步驟。
?、?二值化要分割的圖像
BaseFilterHandler.ImgConvertToFormat8(c_Bitmap);
BaseFilterHandler.ImgBradleyLocalThresholding(c_Bitmap);
?、?轉(zhuǎn)換為圖像指針并獲取圖像中的左右邊界
BitmapData bmData=c_Bitmap.LockBits(new Rectangle
(0,0,c_Bitmap.Width,c_Bitmap.Height),ImageLockMode .ReadWrite, c_Bitmap.PixelFormat);
List<int[]> widthLeftRight=GetImgLeftRight(bmData,
c_Bitmap, throldValue);
?、?獲取圖像的上下邊界
int[] yValues=img.GetPicTopBottom(sourceMap, 1, sourceMap
.Height-2, widthLeft[widthLeftIndex],
widthRight[widthLeftIndex]);
top=yValues[0]; bottom=yValues[1];
?、?分割圖像
Rectangle sourceRectangle0=new Rectangle
(widthLeft[widthLeftIndex],tempTop, widthRight
[widthLeftIndex]-widthLeft[widthLeftIndex], tempHeight);
Bitmap tempMap=sourceMap.Clone(sourceRectangle0,
sourceMap.PixelFormat);
2.1.3 實際效果
存在干擾情況下的分割效果,
圖像掃描分割的結(jié)果存在多干擾點,一些字符不能完整地被分割出來,多個字符連接在一起,分割效果不是很好。
2.2 findContours分割
2.2.1 算法思想
該算法是提取圖像的輪廓信息,一個輪廓一般對應(yīng)一系列的點,也就是圖像中的一條線[5]。在算法中用序列cvSeq來保存提取到的序列集,序列中的每一個元素就是曲線中的一個點的位置。
2.2.2 分割過程實現(xiàn)
下面介紹采用C++實現(xiàn)對圖像分割處理的主要步驟。
?、?圖像的預(yù)處理(二值化、平滑處理等)
threshold(input,img_threshold,60,255,
CV_THRESH_BINARY_INV);
IplImage* input_image=&IplImage(img_threshold);
IplImage* dst_image=cvCreateImage(cvGetSize
(input_image),IPL_DEPTH_8U,0);
cvSmooth(input_image,dst_image,CV_GAUSSIAN,3,0,0,0);
?、?查找圖像的聯(lián)通區(qū)域及輪廓
Mat img_contours;
img_threshold.copyTo(img_contours);
vector<vector<Point>> contours;
findContours(img_contours, contours,
CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);
?、?對輪廓進行轉(zhuǎn)換得到內(nèi)容區(qū)域
vector<vector<Point>>::iterator itc=contours.begin();
IplImage* temp=&(IplImage)input;
vector<Rect> validRect;
while(itc!=contours.end()) {
Rect mr=boundingRect(Mat(*itc));
rectangle(result,mr,Scalar(0,255,0));
if(!checkSplitRect(mr,temp->height,temp->width))
{ ++itc;continue; }
validRect.push_back(mr);
++itc;
}
?、?圖像分割
CvSize size=cvSize(rect.width,rect.height);
cvSetImageROI(source,cvRect(rect.x,rect.y,size.width,size.height));
IplImage* pDest=cvCreateImage(size,source->depth,
source->nChannels);
cvCopy(source,pDest);
cvResetImageROI(pDest);
2.2.3 實際效果
從分割結(jié)果看,該分割算法能把所有的單個圖片聯(lián)通區(qū)域分割出來,但是分割出的區(qū)域存在很多干擾區(qū)域,增加了實際區(qū)域提取的復(fù)雜度
下面將在此基礎(chǔ)上進行改進。
2.3 改進后的算法
增加連通區(qū)域的有效性判斷及過濾;
checkSplitRect(Rect rect,int height,int width)
同時對一些單字符被分割成多個字符的區(qū)域按照一定的算法及規(guī)則進行有效組合和合并;
vector<Rect> MergeImage(vector<Rect> validRect)
最后形成的分割效果如圖3所示,將所有字符正確的分割出來,去除了干擾,達到了理想的效果。
3 實驗結(jié)果
為了驗證本方案的可行性和可操作性,本文使用10000張測試圖像作為實驗測試庫,對此方案進行測試。測試結(jié)果:正確分割達到99%以上。如圖4,改進后的分割正確率比改進前的分割正確率提高了將近20倍。
4 結(jié)束語
圖像分割沒有通用的理論,要根據(jù)具體情況采取有效的方法。利用已經(jīng)研究出的多種圖像分割方法,將多種方法綜合運用,發(fā)揮各自的優(yōu)勢進行圖像分割將成為這一領(lǐng)域的發(fā)展趨勢。同時,由于現(xiàn)在所處理的圖像的復(fù)雜度和固有的模糊性,傳統(tǒng)的單一的處理方法已不能適用需要,與新理論、新工具和新技術(shù)結(jié)合起來才能有所突破和創(chuàng)新。
本文在原有分割技術(shù)的基礎(chǔ)上,結(jié)合實際的使用情況,進行了算法思想的改進和創(chuàng)新,最終達到了理想的分割效果,在一定程度上具有良好的研究和實用價值。
參考文獻:
[1] R.M.Haralick,L.G.Shaprio, "Image segmentation tech2 niques",Computer Vision, Graphics, and Image Processing,1985.29:100-132
[2] 羅希平等.圖像分割方法綜述[J].模式識別與人工智能,1999.12(3):300-312
[3] 吳一全,朱兆達.圖像處理中閾值選取方法30年(1962-1992)的進展(一)[J].數(shù)據(jù)采集與處理,1993.3:193-201
[4] 章旒晉.圖像分割[M].科學(xué)出版社,2001.
[5] 劉海亮.數(shù)字圖像分割方法研究[J].電腦知識與技術(shù),2009.9.
看了“圖像分割技術(shù)論文”的人還看: