数字图像处理——阈值分割.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字图像处理——阈值分割

计算机科学与通信工程学院 实验报告 课程 图像处理 实验题目 图像分割 1. 引言 图像分割是一种重要的图像分析技术。在对图像的研究和应用中,人们往往只对图像中的特定某一部分感兴趣,他们一般对应着图像中某些特定的区域。为了识别它们,可以把他们从图像中分离提取出来。 2. 基本知识 典型的图像分割方法可以分为基于阈值的方法、基于边缘的方法和基于区域的分割方法。 灰度阈值法将图片灰度划分为不同等级,用设置灰度阈值的方法确定有意义的区域。它是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。阈值分割方法实际上是输入图像f到输出图像g的如下变换: 其中,T为阈值,对于物体的图像元素g(i,j)=1,对于背景的图像元素g(i,j)=0。 由此可见,阈值分割算法的关键是确定阈值,如果能确定一个合适的阈值就可准确地将图像分割开来。阈值确定后,将阈值与像素点的灰度值逐个进行比较,而且像素分割可对各像素并行地进行,分割的结果直接给出图像区域。 图像边缘是图像识别中抽取图像特征的重要属性。是由于相邻像素间灰度值剧烈变化引起的。图像中边缘处像素的灰度值不连续,这种不连续性可通过求导数来检测到。对于阶跃状边缘,其位置对应一阶导数的极值点,对应二阶导数的过零点(零交叉点)。因此常用微分算子进行边缘检测。常用的一阶微分算子有Roberts算子、Prewitt算子和Sobel算子,二阶微分算子有Laplace算子和Kirsh算子等。在实际中各种微分算子常用小区域模板来表示,微分运算是利用模板和图像卷积来实现。这些算子对噪声敏感,只适合于噪声较小不太复杂的图像。 水域分割是借鉴了形态学理论的分割方法,其本质是利用了图像的区域特征进行分割图像。将边缘检测与区域生长的优点相结合。 3. 功能分析及设计 用全局阈值、OTSU及迭代法求阈值。结果如图2,3所示 I=imread(i_boat_gray.bmp); [width,height]=size(I); %otsu algorithm level=graythresh(I); BW=im2bw(I,level); figure imshow(BW) %global threshold for i=1:width for j=1:height if(I(i,j) 80) BW1(i,j)=0; else BW1(i,j)=1; end end end figure imshow(BW1) %迭代求阈值 I=double(I); T=(min(I(:))+max(I(:)))/2; done=false; i=0; while ~done r1=find(I=T); r2=find(IT); Tnew=(mean(I(r1))+mean(I(r2)))/2; done=abs(Tnew -T)1; T=Tnew; i=i+1; end I(r1)=0; I(r2)=1; Figure; imshow(I) 用分水岭算法分割图像: center1=-10; center2=-center1; dist=sqrt(2*(2*center1)^2); radius=(dist/2) * 1.4; lims=[floor(center1-1.2*radius) ceil(center2+1.2*radius)]; [x,y]=meshgrid(lims(1):lims(2)); bw1=sqrt((x-center1).^2 + (y-center1).^2) = radius; bw2=sqrt((x-center2).^2 + (y-center2).^2) = radius; bw=bw1 | bw2; figure, imshow(bw,InitialMagnification,fit), title(二进制图像) D=bwdist(~bw); figure, imshow(D,[],InitialMagnification,fit) title(距离变换) D=-D; D(~bw)=-Inf; L=watershed(D); rgb=label2rgb(L,jet,[.5 .5 .5]); figure, imshow(rgb,InitialMagnification,fit) title(分水岭方法) Sobel、Prewitt、Roberts等算子的边缘提取算法。 a=imread(d:\skull.png); bw1=edge(a,sobel); bw2=edge(a,prewitt); bw3=edge(a,r

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档