




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、圖像分割實驗報告一、 實驗目的1. 掌握圖像分割的基本思想,了解其分割技術及其計算策略;2. 學會從圖像處理到分析的關鍵步驟,掌握圖像分割過程;3. 了解圖像分割的意義,進一步加深對圖像分析和理解;4. 掌握基本分割方法:迭代分割和OTSU圖像分割,并編程實現(xiàn)。二、 實驗原理(一)迭代閾值分割選取的基本思路是:首先根據(jù)圖像中物體的灰度分布情況,選取一個近似閾值作為初始閾值,一個較好的方法就是將圖像的灰度均值作為初始閾值,然后通過分割圖像和修改閾值的迭代過程獲得認可的最佳閾值。迭代式閾值選取過程可描述如下:1. 計算初始化閾值g0=(gmax+gmin)2;2. 根據(jù) g0,將圖像分為兩部分,分
2、別計算灰度值期望,取其平均值為 g1;3. 如此反復迭代,當|gn -gn-1|足夠小時,停止迭代,取T=gn 即為最終閾值。(二)OTSU圖像分割(最大類間方差法)是一種自適應的閾值確定的方法,是按圖像的灰度特性,將圖像分成背景和目標兩部分。背景和目標之間的類間方差越大,說明構成圖像的兩部分的差別越大, 當部分目標錯分為背景或部分背景錯分為目標都會導致兩部分差別變小。因此,使類間方差最大的分割意味著錯分概率最小。以最佳門限將圖像灰度直方圖分割成兩部分,使兩部分類間方差取最大值,即分離性最大。OTSU閾值選取過程可描述如下:1.記T為目標與背景的分割閾值,目標點數(shù)占圖像比例為w1, 平均灰度為
3、u1;背景點數(shù)占圖像比例為w2,平均灰度為u1;2.圖像的總平均灰度為:u=w1*u1+w2*u2;3.目標和背景圖象的方差:g=w1*(u1-u)*(u1-u)+w1*(u2-u)*(u2-u)=w1*w2*(u1-u2)*(u1-u2);4.當方差g最大時,可以認為此時前景和背景差異最大,此時的灰度T是最佳閾值。二、實驗內(nèi)容1. 利用C+編程實現(xiàn)迭代閾值圖像分割算法;2. 利用C+編程實現(xiàn)OTSU動態(tài)閾值圖像分割算法。三、實驗框圖找出圖像灰度值最大值max ,最小值min開始1.迭代分割T=(max+min)/2;iF256=0;iB256=0;F256=0;B256=0iBk+;Bk+x
4、(i,j)NiFk+;Fk+x(i,j)X(i , j)?>TYYY結束j<255i<255i=0NYi+Tmp=TTmp= (u1+u2)/2;Nj+T=Tmpu1=Fk/iFk;u2=Bk/iBk; YNx(x,j)=255x(x,j)=0x(x,j)?>TNYj=0K+NK<255k=0找出灰度值max ,min開始2.OSTUiF256=0;iB256=0;F256=0;B256=0;T=0iBk+;Bk+x(i,j)NiFk+;Fk+x(i,j)X(i , j)?>TYYY結束j<255i<255i=0i+w1=iFk/(256*256
5、);w2=iBk/(256*256);u1=Fk/iFk;u2=Bk/iBk; Tmp=w1k*(u1k-u)*(u1k- u)+w2k*(u2k-u)*(u2k-u);Nj+YNx(x,j)=255x(x,j)=0x(x,j)?>TNT1=Tmp;T=kYTmp>TYj=0K+NK<=maxk=min四、實驗結果與分析圖 1原圖圖 2迭代圖像分割圖 3OTSU圖像分割實驗分析:由圖2可知:迭代所得的閾值分割的圖象效果良好,能區(qū)分出圖像的目標和背景的主要區(qū)域,但在圖像的細微處還沒有很好的區(qū)分度。部分區(qū)域微小數(shù)據(jù)的變化(如機翼五角星標識下方)引起分割效果的明顯改變,目標和背景的
6、數(shù)據(jù)只是稍有變化但分割效果卻反差極大。由圖可得:對于直方圖雙峰不明顯或圖像目標和背景比例差異懸殊迭代法所選取的閾值不如最大類間方差法(OTSU)(差異不是很大,很細微)。但是對于直方圖雙峰明顯谷底較深的圖像迭代分割可以較快地獲得滿意結果。五、實驗程序段(具體見實驗框架)1.迭代圖像分割:void CImageProcessingDoc:Onimagediedaifenge() / TODO: Add your command handler code hereint m_Width, m_Height, m_SaveWidth;int i,j,k,T,Tmp;double Foreground
7、Sum=0,BackgroundSum=0,u1,u2,min=255,max=0; m_Width = m_pDibInit->GetWidth();m_Height = m_pDibInit->GetHeight();m_SaveWidth = m_pDibInit->GetSaveWidth();int m,iForeground=0,iBackground=0;for(j=0;j<m_Height;j+) for(i=0;i<m_Width;i+)if (m_pDibInit->m_pDibBitsj*m_SaveWidth + i)>=max
8、)max=m_pDibInit->m_pDibBitsj*m_SaveWidth + i;/求最大灰度值if (m_pDibInit->m_pDibBitsj*m_SaveWidth + i)<=min)min=m_pDibInit->m_pDibBitsj*m_SaveWidth + i;/求最小灰度值T=int(max+min)/2);/T為迭代初始閾值for(k=0;k<255;k+) for(j=0;j<m_Height;j+) for(i=0;i<m_Width;i+)m=m_pDibInit->m_pDibBitsj*m_SaveWi
9、dth + i;if(m>=T) iForeground=iForeground+1; ForegroundSum=ForegroundSum+double(m); else iBackground=iBackground+1; BackgroundSum=BackgroundSum+double(m);/根據(jù)閾值對圖像目標和背景分類u1=ForegroundSum/iForeground; u2=BackgroundSum/iBackground; Tmp=int(u1+u2)/2); /新的迭代閾值if(Tmp=T) break; /迭代結束,分割閾值為Tmpelse T=Tmp;C
10、String msg;msg.Format("分割閾值T=%d",T);AfxMessageBox(msg);for(j=0;j<m_Height;j+) for(i=0;i<m_Width;i+)if (m_pDibInit->m_pDibBitsj*m_SaveWidth + i>=T)m_pDibInit->m_pDibBitsj*m_SaveWidth + i=255;elsem_pDibInit->m_pDibBitsj*m_SaveWidth + i=0;UpdateAllViews(NULL);2.OTSU圖像分割:void
11、 CImageProcessingDoc:OnimageOTSU() / TODO: Add your command handler code hereint m_Width, m_Height, m_SaveWidth;m_Width = m_pDibInit->GetWidth();m_Height = m_pDibInit->GetHeight();m_SaveWidth = m_pDibInit->GetSaveWidth();int i,j,k;double ForegroundSum256=0,BackgroundSum256=0,u1256=0,u2256=0
12、;double w1256=0,w2256=0,iForeground256=0,iBackground256=0; double Tmp=0.0,u,T1=0.0,sum=0;int m,min=255,max=0,T=0;for(j=0;j<m_Height;j+) for(i=0;i<m_Width;i+)if (m_pDibInit->m_pDibBitsj*m_SaveWidth + i)>=max)max=m_pDibInit->m_pDibBitsj*m_SaveWidth + i;/求最大灰度值if (m_pDibInit->m_pDibBi
13、tsj*m_SaveWidth + i)<=min)min=m_pDibInit->m_pDibBitsj*m_SaveWidth + i;/求最小灰度值for(k=min;k<=max;k+)/遍歷圖像中所有灰度值for(j=0;j<m_Height;j+) for(i=0;i<m_Width;i+)m=m_pDibInit->m_pDibBitsj*m_SaveWidth + i;if(m>k) iForegroundk=iForegroundk+1; /目標點數(shù)ForegroundSumk=ForegroundSumk+m; /目標區(qū)域灰度值之和
14、else iBackgroundk=iBackgroundk+1; /背景點數(shù)BackgroundSumk=BackgroundSumk+m;/背景區(qū)域灰度值之和w1k=double(iForegroundk/(m_Width*m_Height);/目標點數(shù)占圖像比例w2k=double(iBackgroundk/(m_Width*m_Height);/背景點數(shù)占圖像比例u1k=double(ForegroundSumk/iForegroundk); /目標區(qū)域平均灰度u2k=double(BackgroundSumk/iBackgroundk); /背景區(qū)域平均灰度u=w1k*u1k+w2k*u2k;/圖像總平均灰度Tmp=w1k*(u1k-u)*(u1k-u)+w2k*(u2k-u)*(u2k-u);if(Tmp>=T1) T1=Tmp;T=k;/求出最大Tmp,找出最佳閾值TCString msg;msg.Format("最佳閾值T=%d",T);AfxMessage
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品添加劑安全性評估與合理使用在調(diào)味品行業(yè)的應用報告
- 小學教育信息化建設反思試題及答案
- 教育園區(qū)建設對2025年社會穩(wěn)定風險評估與風險監(jiān)測報告
- 機械裝備制造業(yè)智能化升級與產(chǎn)品質量提升研究報告
- 教師教育教學改進表現(xiàn)的試題及答案
- 小學教師反思與校本培訓的重要性試題及答案
- 山東石油化工學院《工程管理類軟件應用含技術》2023-2024學年第一學期期末試卷
- 工業(yè)互聯(lián)網(wǎng)平臺安全升級之道:2025年漏洞掃描技術前瞻報告
- 曲阜遠東職業(yè)技術學院《食品分析含實驗》2023-2024學年第二學期期末試卷
- 市政公用工程法律法規(guī)試題及答案
- 設備維護工程師簡歷
- 2023版押品考試題庫必考點含答案
- 挖孔樁基施工方案(水磨鉆)
- 變電檢修技能考試計算
- 國際經(jīng)濟法學(湘潭大學)智慧樹知到答案章節(jié)測試2023年
- 以案說德發(fā)言四篇
- 大氣污染控制工程課后題答案解析
- 臨床試驗倫理委員會倫理審查不同意見溝通的標準操作規(guī)程
- 梅毒診療指南(2023年)
- 高中物理3-3熱學練習題(含答案)
- DB32-T 3916-2020建筑地基基礎檢測規(guī)程-(高清現(xiàn)行)
評論
0/150
提交評論