版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图像分割实验报告一、 实验目的1. 掌握图像分割的基本思想,了解其分割技术及其计算策略;2. 学会从图像处理到分析的关键步骤,掌握图像分割过程;3. 了解图像分割的意义,进一步加深对图像分析和理解;4. 掌握基本分割方法:迭代分割和OTSU图像分割,并编程实现。二、 实验原理(一)迭代阈值分割选取的基本思路是:首先根据图像中物体的灰度分布情况,选取一个近似阈值作为初始阈值,一个较好的方法就是将图像的灰度均值作为初始阈值,然后通过分割图像和修改阈值的迭代过程获得认可的最佳阈值。迭代式阈值选取过程可描述如下:1. 计算初始化阈值g0=(gmax+gmin)2;2. 根据 g0,将图像分为两部分,分
2、别计算灰度值期望,取其平均值为 g1;3. 如此反复迭代,当|gn -gn-1|足够小时,停止迭代,取T=gn 即为最终阈值。(二)OTSU图像分割(最大类间方差法)是一种自适应的阈值确定的方法,是按图像的灰度特性,将图像分成背景和目标两部分。背景和目标之间的类间方差越大,说明构成图像的两部分的差别越大, 当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。以最佳门限将图像灰度直方图分割成两部分,使两部分类间方差取最大值,即分离性最大。OTSU阈值选取过程可描述如下:1.记T为目标与背景的分割阈值,目标点数占图像比例为w1, 平均灰度为
3、u1;背景点数占图像比例为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是最佳阈值。二、实验内容1. 利用C+编程实现迭代阈值图像分割算法;2. 利用C+编程实现OTSU动态阈值图像分割算法。三、实验框图找出图像灰度值最大值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可知:迭代所得的阈值分割的图象效果良好,能区分出图像的目标和背景的主要区域,但在图像的细微处还没有很好的区分度。部分区域微小数据的变化(如机翼五角星标识下方)引起分割效果的明显改变,目标和背景的
6、数据只是稍有变化但分割效果却反差极大。由图可得:对于直方图双峰不明显或图像目标和背景比例差异悬殊迭代法所选取的阈值不如最大类间方差法(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);/根据阈值对图像目标和背景分类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; /目标点数ForegroundSumk=ForegroundSumk+m; /目标区域灰度值之和
14、else iBackgroundk=iBackgroundk+1; /背景点数BackgroundSumk=BackgroundSumk+m;/背景区域灰度值之和w1k=double(iForegroundk/(m_Width*m_Height);/目标点数占图像比例w2k=double(iBackgroundk/(m_Width*m_Height);/背景点数占图像比例u1k=double(ForegroundSumk/iForegroundk); /目标区域平均灰度u2k=double(BackgroundSumk/iBackgroundk); /背景区域平均灰度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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年西安交通大学口腔医院招聘(137人)笔试备考试题及答案解析
- 2026河北廊坊市文安县中医院招聘事业编制人员16人笔试备考题库及答案解析
- 2026上半年甘肃事业单位联考共青团甘肃省委招聘3人笔试备考试题及答案解析
- 2026中信建筑设计研究总院有限公司国际业务部(筹)招聘15人(湖北)笔试备考题库及答案解析
- 2026年廊坊燕京职业技术学院单招综合素质考试模拟试题含详细答案解析
- 2026中石化云南怒江石油分公司招聘笔试备考试题及答案解析
- 2026中电建水电开发集团有限公司秋季招聘笔试备考题库及答案解析
- 2026重庆市轻工业学校招聘数学教师、心理健康教师岗位3人笔试备考试题及答案解析
- 2026重庆市大渡口区事业单位面向川渝机关事业单位遴选14人笔试备考题库及答案解析
- 2026江苏南京大学XZ2026-020海外教育学院行政主管招聘笔试备考试题及答案解析
- 2026年春期人教版二年级下册数学全册教案(核心素养教案)
- 2026年广东省湛江市高三一模高考数学试卷试题(答案详解)
- 水利工程地质勘察规范(标准版)
- 购物商城管理系统
- 中国中煤能源集团有限公司图克绿色低碳产业示范园区规划-高质量打造鄂尔多斯世界级现代煤化工产业示范区关键核心区
- 2026年高考地理压轴训练卷1
- 2026考公省考云南试题及答案
- 【初中地理】《河流与湖泊》 教学设计-2025-2026学年八年级地理上册(人教版2024)
- 蔬菜净料率行业标准参照表
- 新媒体微短剧对大学生价值观塑造的影响机制研究
- 2025年低压电工理论考试试题1000题
评论
0/150
提交评论