1 / 9
文档名称:

阈值法图像分割实验报告.doc

格式:doc   大小:511KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

阈值法图像分割实验报告.doc

上传人:书生教育 2024/4/17 文件大小:511 KB

下载得到文件列表

阈值法图像分割实验报告.doc

相关文档

文档介绍

文档介绍:该【阈值法图像分割实验报告 】是由【书生教育】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【阈值法图像分割实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。阈值法图像分割实验报告实验目的图像分割阈值法具有实现容易、计算量小、性能稳定等优点。因此这种方法成为图像分割领域中应用最普遍的方法。本文主要讨论了基于直方图法的图像分割的设计与实现,并与迭代法进行了对比实验。实验环境MicrosoftVC++,32位WindowsXP操作系统。。假定一幅图像(x,y)如图3-1所示,其中背景是灰色,物体为灰白色的,背景中的黑色像素产生了直方图的左锋,而物体的各灰度级产生了直方图的右峰。由于物体边界像素数相对而言较少,从而产生两峰之间的谷,选择谷对应的灰度值作为阈值 T,利用式 ,可以得到一幅二值图像g(x,y),用于后续处理和分析。0,f(x,y)T()g(x,y)255,f(x,y)T背景部分 物体部分0 255阈值T图3-(用于对比试验)迭代法也是一种在图像分割过程中选择合适阈值的方法。它是基于逼近的思想通过阈值迭代的方式利用程序自动计算出比较合适的分割阈值。迭代法指在初始条件中假设一个阈值,而通过对图像的迭代运算来不断地更新这一假设阈值来得到最佳阈值。迭代法阈值分割主要算法:. 根据阈值将图像分割成目标和背景两部分,求出两部分的平均灰度值R(i,j)N(i,j)R(i,j)N(i,j)R(i,j)kTR(i,j)TkR0RGN(i,j)N(i,j)R(i,j)kTR(i,j)TkR(i,j)为图像上(i,j)点的灰度值,N(i,j)为(i,j)点的权重系数,一般N(i,j)为R(i,j),新的阈值R0RGTk1定义为Tk12循环做第二步到第四步,当TkTk1则结束,即可获得最佳阈值来对图像进行分割。!书签自引用无效。 所示。输入图像统计直方确定波峰波确定阈值T二值化图像保存图谷图4-1直方图阈值法算法流程统计直方图和阈值分割流程图如图 4-所示。输入图像读信息头lpbit输入图像获取位图数据文件首地读信息头lpbit址L获取阈值T获取图像宽度W和高度H获取图像宽度 W和高度Hi=0,j=0i=0,j=0Noi<WNoi<WYesj=0Yesj=0Noj<HNoj<HYesYesZhifangtu[*lpbit+i*w+j]++;Nod>Tj=j+1Yes*(lpbit+i*width+j)=*(lpbit+i*width+j)=0255i=i+1j=j+1结束i=i+1结束(a)统计直方图(b)阈值分割图4-,j;unsignedcharpixel;longlHistogram[256];LONGlLineBytes;//循环变量//像素值//直方图数组//图像每行的字节数//获得直方图for(i=0;i<256;i++)//初始化数组lHistogram[i]=0;lLineBytes=WIDTHBYTES(width*8);//计算图像每行的字节数for(i=0;i<width;i++){for(j=0;j<height;j++){指向源图像倒数第j行,第i个象素的指针pixel=*(buf+lLineBytes*j+i);lHistogram[pixel]++;}}//初始化阈值unsignedcharyuzhi=0;//创建阈值选择对话框CFENGE dlg1;=0;//在对话框里输出说明文字CStringss;("如果峰值较多,建议用迭代法 ");+=ss;显示对话框,提示用户输入阈值for(i=0;i<256;i++)[i]=(float)lHistogram[i];if(()!=IDOK){return; //返回}yuzhi=(unsignedchar);deletedlg1;//删除对话框//根据阈值将图像二值化for(i=0;i<width;i++){for(j=0;j<height;j++){pixel=*(buf+lLineBytes*j+i);if(pixel<=yuzhi){*(buf+lLineBytes*j+i)=(unsignedchar)0;}else{*(buf+lLineBytes*j+i)=(unsignedchar)255;}}} ,文件操作界面如图 5-1所示。图5-1程序运行界面程序可读取、处理和保存8位灰度图像,并可对8位灰度图像进行图像分割操作,用户界面设计较人性化。,结果如图 5-2所示。(a)目标图像 (b)直方图统计结果图5-2图像分割直方图由图中可以看出,图像有很多峰,这样给我们选取峰谷确定阈值带来了一定的困难,下面我们将通过试探的方法,研究直方图法的优缺点分别选择不同阈值参数,对图5-3(a)所示的图像进行图像分割,结果如下图所示。其中(a)~(e)为直方图法的处理结果,而(f)为迭代法的处理结果,用于对比直方图法选取阈值的合理性。(a)阈值T=30 (b)阈值T=50(c)阈值T=60 (d)阈值T=80(e)阈值T=100 (f)迭代法,阈值 T=87图5-3不同阈值的图像分割效果图中(f)图为迭代法的结果,阈值为87,可以看出处理结果较理想,而其他阈值则不太理想,因为峰值太多,给阈值选取带来了很大困难。,这样可以更好地测试图像分割的目的性和作用。(a)目标图像 (b)直方图统计图图5-4直方图统计(a)阈值T=50 (b)阈值T=100(c)阈值T=120 (d)迭代法,阈值 T=128图5-5不同阈值的图像分割效果从图中可以看出,这个示例的峰值相对较少,可以较好的选择阈值,以便于更好地分割图像,提取目标,可以看出处理后的图片比原始图片更加容易辨认目标,基本上达到了目的。,阈值法图像分割中迭代法的处理结果比较理想,可以作为一个很好的参考,对于直方图阈值法来说,虽然操作简单方便,但有以下缺点:不适合处理峰值较多,灰度级分布较密的图像。无法获得最优阈值,因此无法获得最佳结果。,我们对数字图像的来源,显示,处理等过程有了初步了解。对光学系统的成像过程,数字图像的传输,编码,复原,分割,压缩等理论知识和关键技术有了较系统的掌握,并能够得以初步应用。通过这一段时间的图像处理实践过程,我们对BMP格式图像的数据结构有了更深入的了解,能够灵活运用C++编程语言对BMP图像进行读写,存储以及一些简单处理等操作,对阈值法图像分割操作体会尤深。总之,光学图像处理课程的开设对我们的学****科研等有较大帮助,虽然研究内容与之相关甚微,但老师在课程中提出的研究问题的思想与方法让我们受益匪浅。附录//迭代求最佳阈值iNewThreshold=(iMin+iMax)/2;iThreshold=0;for(iIterationTimes=0;iThreshold!=iNewThreshold&&iIterationTimes<200;iIterationTimes++){iThreshold=iNewThreshold;lP1=0;lP2=0;lS1=0;lS2=0;//求两个区域的灰度平均值for(i=iMin;i<iThreshold;i++){lP1+=lHistogram[i]*i;lS1+=lHistogram[i];}iMean1=(unsignedchar)(lP1/lS1);for(i=iThreshold+1;i<iMax;i++){lP2+=lHistogram[i]*i;lS2+=lHistogram[i];}iMean2=(unsignedchar)(lP2/lS2);iNewThreshold= (iMean1+iMean2)/2;}