【正文】
.背景測地線距離計算用流程圖表示,如圖 所示。開始屬于背景的像素點(diǎn)依次入棧b ( i , j ) = g ( i , j ) 棧不空棧頂元素賦給n o d e a , 棧頂元素出棧 結(jié)束判斷 1 判斷 2判斷 3判斷 4是否圖 **大學(xué)本科畢業(yè)論文17 n o d e a . x 0 是是n o d e b . x = n o d e a . x 1n o d e b . y = n o d e a . yn o d e b . g ( x , y ) = g ( x 1 , y )n o d e b 入棧b ( x 1 , y ) = b ( x , y ) + g ( x 1 , y )否否b ( x , y ) + g ( x 1 , y ) b ( x 1 , y ) 否否n o d e a . x h e i g h t 1 b ( x , y ) + g ( x + 1 , y ) b ( x + 1 ,y)n o d e b . x = n o d e a . x + 1n o d e b . y = n o d e a . yn o d e b . g ( x , y ) = g ( x + 1 , y )n o d e b 入棧b ( x + 1 , y ) = b ( x , y ) + g ( x + 1 , y )是是 圖 (a)判斷 1 圖 (b)判斷 2 否否n o d e a . y 0 是是b ( x , y ) + g ( x , y 1 ) b ( x , y 1 )n o d e b . x = n o d e a . xn o d e b . y = n o d e a . y 1n o d e b . g ( x , y ) = g ( x , y 1 )n o d e b 入棧b ( x , y 1 ) = b ( x , y ) + g ( x , y 1 ) 否否n o d e a . y w i d t h 1 是是b ( x , y ) + g ( x , y + 1 ) b ( x , y + 1 )n o d e b . x = n o d e a . xn o d e b . y = n o d e a . y + 1n o d e b . g ( x , y ) = g ( x , y + 1 )n o d e b 入棧b ( x , y + 1 ) = b ( x , y ) + g ( x , y + 1 ) 圖 (c)判斷 3 圖 (d)判斷 45.實驗結(jié)果與分析為了驗證算法的性能,選取不同的目標(biāo)圖像進(jìn)行分割實驗。運(yùn)行程序時用到 t(T) 、b(B) 、s (S)等按鍵。按下 t(T )表示取前景,在我們想要得到的目標(biāo)上做標(biāo)記,按下 b(B )時是對背景做標(biāo)記,按下 s(S )時,是開始執(zhí)行分割的步驟,最終得到目標(biāo)。**大學(xué)本科畢業(yè)論文18在實驗時分別對 6 幅圖像做了分割,得到的結(jié)果如圖 所示。從得到的結(jié)果可以看出,算法可以較好的將目標(biāo)從圖像中提取出來。 (a) (b) (c) (d) 圖 (e) 圖 (f)**大學(xué)本科畢業(yè)論文196.總結(jié)圖像分割是圖像處理中經(jīng)典而又重要的問題之一,在相關(guān)領(lǐng)域已經(jīng)有很多成功的分割方法。對圖像分割算法的研究已有幾十年的歷史,借助各種理論至今已提出了上千種各種類型的分割算法。盡管人們在圖像分割方面做了許多研究工作。但由于尚無通用分割理論,因此現(xiàn)已提出的分割算法大都是針對具體問題的,并沒有一種適合于所有圖像的通用的分割算法。但是可以看出,圖像分割方法正朝著更快速、更精確的方向發(fā)展,通過各種新理論和新技術(shù)結(jié)合將不斷取得突破和進(jìn)展。基于測地線的分割方法在圖像分割方面取得了極好的效果。但是上述分割方法仍有不足之處,計算量大以及在執(zhí)行程序時運(yùn)行速度偏慢,因此如何進(jìn)一步改進(jìn)其方法是今后研究的一個課題。參考文獻(xiàn)[1] 劉瑞禎,于仕琪 . Opencv 教程[M]. 北京: 北京航空航天大學(xué)出版社, 2022.[2] 阮秋琦. 數(shù)字圖像處理[M]. 北京: 電子工業(yè)出版社, 2022.[3]Richard ,Peter ,David . Pattern Classification[M]. 北京:機(jī)械工業(yè)出版社、中信出版社, 2022.[4] Rafael ,Richard . Digital Image Processing Second Edition[M]. 北京: 電子工業(yè)出版社, 2022.[5]Xue Bai,Guillermo Sapiro. A GEODESIC FRAMEWORK FOR FAST INTERACTIVE IMAGE AND VIDEO SEGMENTATION AND MATTING [D]. Minnesota: UNIVERSITY OF MINNESOTA, 2022.[6] 張立新. 測地線及其應(yīng)用[D]. 鞍山:鞍山師范學(xué)院數(shù)學(xué)系,2022.[7] 王紅喜. 基于改進(jìn)的測地線活動輪廓模型的圖像分割[D]. 陜西:西北大學(xué)計算數(shù)學(xué),2022.[8]熊福松,王士同. 一種基于 Parzen 窗方法和 Renyi 熵的圖像分割閾值選取新方法[D]. 江蘇:江南大學(xué)信息工程學(xué)院,2022.[9] 趙祥坤. 圖像梯度域的計算及應(yīng)用[D]. 北京:北京林業(yè)大學(xué)理學(xué)院,2022.[10] 何會珍. 圖形圖像處理的梯度場算法[D]. 浙江:浙江大學(xué)應(yīng)用數(shù)學(xué),2022.[11] 胡學(xué)龍,許開宇 . 數(shù)字圖像處理[M]. 北京: 電子工業(yè)出版社, 2022.[12] 姚敏. 數(shù)字圖像處理[M]. 北京: 機(jī)械工業(yè)出版社, 2022.**大學(xué)本科畢業(yè)論文20致謝本文的工作是在尊敬的***老師的指導(dǎo)下完成的。首先,衷心的感謝*** 老師的無私幫助。正是由于他在百忙之中多次審閱全文,對細(xì)節(jié)進(jìn)行修改,本文才得以成形。同時也要感謝**大學(xué)信息與電氣工程學(xué)院為我們提供的良好的學(xué)習(xí)環(huán)境,感謝院里各位老師的辛勤工作才使我能夠順利地完成學(xué)業(yè)。另外,我必須感謝我的父母。正是因為他們的日夜辛勞我才有機(jī)會完成大學(xué)學(xué)業(yè),進(jìn)而取得進(jìn)一步發(fā)展的機(jī)會。最后我必須感謝我的朋友,正是因為你們無私的幫助,我才能順利的完成該論文。附錄 Astruct colornode{int colorR,colorG,colorB。int number。bool operator ==(const colornodeamp。 other) const//==重載{ return(colorR==)amp。amp。(colorG==)amp。amp。(colorB==)。}}。struct gradnode{int x。//heightint y。//widthint parx, pary。double gradient。bool operator (const gradnodeamp。 other) const{return gradient。}}。**大學(xué)本科畢業(yè)論文21vector colornode background。vector colornode target。void on_mouse(int event,int x,int y,int flags,void * param){ int i,j,k。unsigned int top,down,left,right。colornode a。int exists。CvPoint prev_pt={1,1}。if( event == CV_EVENT_LBUTTONUP || !(flags amp。 CV_EVENT_FLAG_LBUTTON))prev_pt = cvPoint(1,1)。else {if( event == CV_EVENT_LBUTTONDOWN )prev_pt = cvPoint(x,y)。else{ if(event==CV_EVENT_MOUSEMOVEamp。amp。(flagsamp。CV_EVENT_FLAG_LBUTTON)){CvPoint pt = cvPoint(x,y)。if( 0 )prev_pt = pt。if (flag==1)//target{top=ypenwidth+1。down=y+penwidth。left=xpenwidth+1。right=x+penwidth。if(top0) top=0。if(downheight1) down=height1。if(left0) left=0。if(rightwidth1) right=width1。for(i=top。i=down。i++){for(j=left。j=right。j++){nodeflag[i][j]=1。//target node=data[i*step+j*channels]。=data[i*step+j*channels+1]。**大學(xué)本科畢業(yè)論文22=data[i*step+j*channels+2]。=1。exists=0。for(k=0。k()。k++){if(target[k]==a){exists=1。 break。}}if(exists==0)(a)。elsetarget[k].number++。}} cvLine(newImg, prev_pt, pt, CV_RGB(255,0,0),penwidth , 8, 0)。}if (flag==2)//background{top=ypenwidth+1。down=y+penwidth。left=xpenwidth+1。right=x+penwidth。if(top0) top=0。if(downheight1) down=height1。if(left0) left=0。if(rightwidth1) right=width1。 for(i=top。i=down。i++) { for(j=left。j=right。j++) { nodeflag[i][j]=2。 =data[i*step+j*channels]。 =data[i*step+j*channels+1]。 =data[i*step+j*channels+2]。 =1。 exists=0。 for(k=0。k()。k++) {if(background[k]==a){ exists=1。 break。}**大學(xué)本科畢業(yè)論文23 } if(exists==0)(a)。 elsebackground[k].number++。 } } cvLine(newImg, prev_pt, pt,CV_RGB(0,255,0),penwidth, 8, 0)。}prev_pt = pt。cvShowImage( picture, newImg)。 } } }