水域分割实验报告.doc_第1页
水域分割实验报告.doc_第2页
水域分割实验报告.doc_第3页
水域分割实验报告.doc_第4页
水域分割实验报告.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB程序设计 实验报告 院(系)名称 宇航学院 专 业 名 称图像处理与模式识别 学 生 学 号13151023 学 生 姓 名荣楚君 2016 年 5月 实验 基于Matlab水域分割的图像分割实验一、实验目的1、 掌握Matlab图像处理工具箱的使用。2、 学习使用联机帮助、Demo与查找更多的Matlab功能。3、 熟悉使用Matlab进行交互操作的方法。4、 学习图像分割的基本知识。二、实验要求(一)、对实验过程的要求1、编写M-文件,实现给定图像的分割。2、学习Matlab中Demo的相关帮助。3、实验中生成的中间结果和数据尽量保存。(二)、对实验报告的撰写要求1、参考附录的实验报告格式样本撰写。2、“实验结果”主要包括:(1)基于标记的和非标记的两种水域分割结果图。(2)用于水域分割的Marker图。(3)将水域分割得到结果的轮廓在原图上显示出来。3、实验报告附录中包含M-文件的源代码,要注意代码的格式。三、实验环境和设备1、PC机,Windows XP / 7操作系统。2、Matlab R2010及其以上版本。四、实验原理1、图像分割图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程,它是由图像处理到图像分析的关键步骤。图像分割的关键是将前景与背景区分开。分水岭算法又称为水域分割,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。水域分割一般是在梯度图像上实现,梯度图上的局部极小值一般代表较平滑的区域,即为目标中心区域或者变化不大的背景区域,集水形成的“分水岭”则位于梯度较大的边缘区域。2、实现方式首先要对输入原始图像求取梯度图像,对梯度图像直接做水域变换(watershed)即可得到无标记的水域分割结果。对梯度图像做前景标记,即在输入图像的每一个目标中心做一个Marker(可手动选取,也可用阈值法得到),在梯度图像上用该Marker作局部极小值的标记,再进行水域变换,即可得到基于标记点的水域分割结果。3、分割结果展示,在原图像上添加水域分割得到的轮廓如图所示。 (a) (b)图1 图像配准的例子。五、实验内容及步骤(一)学习Matlab帮助的Demo代码从Matlab帮助界面中打开Demos或Examples,搜索watershed在结果中找到Marker-Controlled Watershed Segmentation,配合中间结果研究该demo如何实现利用水域分割得到图像中的梨。(二)输入测试图像生成待分割的灰度图像利用如下代码输入图像:I=imread(cells.bmp);(三)计算图像梯度与水域分割使用sobel算子计算水平梯度与垂直梯度再综合,得到输入图像的梯度图像。在梯度图像上直接做水域分割,得到非标记的水域分割结果。(四)计算标记点在原始图像上通过阈值得到前景的大致分割结果并用形态学腐蚀后作为前景(细胞)标记,也可以通过函数x y=ginput()手动标记各细胞的位置,甚至用PS或windows画图画出细胞的标记。标记点可以是真正的点,也可以是有一定面积的区域,但是标记区域一定要位于真实的分割细胞内部。标记图像是与输入图像同大小的,在细胞位置为255,其他位置为0的图像,如下图所示。 (a)输入图像 (b)标记图像(五)由标记图像标记梯度图像中的前景与背景极值第四步中得到的是前景(细胞)的标记,现在要通过前景标记得到背景标记。函数bwdist可以计算二值图像的距离变换,对距离变换做watershed就可以得到前景与前景之间的背景标记(线型标记)。在梯度图上利用imimposemin(gradmap, backgroundmarker | foregroundmarker)即可得到标记了极值的梯度图像; (a)由距离变换得到的背景标记 (b)标记前景与背景的梯度图像(六)基于标记的水域分割对标记了极小值的梯度图像做watershed,得到水域分割结果(七)结果分析与总结(1)对比无标记的水域分割与有标记的水域分割结果;(2)总结水域分割算法整体流程,尤其是标记点的运用;(3)与阈值法(如大津阈值)分割图像的算法相比,水域分割的优劣。(八)Bonus完全依照实验步骤,最后结果可能会如下所示的结果。图中的线是如何产生的,如何避免产生这种问题。六、实验结果1.实验截图2.结果分析与总结(1)对比无标记的水域分割与有标记的水域分割结果;无标记时,水域分割产生过分割现象,得不到理想的效果,只有标记后才能得到较为理想的结果(2)总结水域分割算法整体流程,尤其是标记点的运用;整体流程:输入测试图像生成灰度图像=计算图像梯度=设置标记点产生标记图像=由标记图像标记梯度图像中的前景与背景极值=基于标记作水域分割(3)与阈值法(如大津阈值)分割图像的算法相比,水域分割的优劣。优点:水域分割法可以得到比阈值法更好的分割原图像,它结合了边缘检测和区域生长的优点,得到单像素宽、封闭的、位置准确的轮廓。缺点: 算法比较复杂,对计算机要求很高。3.实验代码clear all;clc;I= imread(C:Usersrh北航大三下MATLAB课水域分割cells.tif); imshow(I);title(原图); %1h=fspecial(sobel); %h = fspecial(type) creates a two-dimensional filter h of the specified type. fspecial returns h as %a correlation kernel, which is the appropriate form to use with imfilter. type is a string having one of these values. fd=double(I); %double使数据变成双精度 g=sqrt(imfilter(fd,h,replicate).2+imfilter(fd,h,replicate).2); figure; imshow(g);title(梯度图); %2L = watershed(g);Lrgb=I; Lrgb(L=0)=255; figure;imshow(Lrgb);title(未标记的水域分割); %3se = strel(disk, 20);se2 = strel(ones(3,3);Ie = imerode(I, se);Iobr = imreconstruct(Ie, I);Iobrd = imdilate(Iobr, se);Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr);Iobrcbr = imcomplement(Iobrcbr);fgm = imregionalmax(Iobrcbr);fgm2 = imclose(fgm, se2);g3 = imerode(fgm2, se2);figure;imshow(g3);title(标记图像); %4M=imread(C:Usersrh北航大三下MATLAB课水域分割ff.tif); imshow(M);title(标记图像改正后); %5bw = im2bw(Iobrcbr, graythresh(Iobrcbr); %阈值分割D=bwdist(bw);Lim=watershed(D); %watershed分水岭算法 Lim的值greater than or equal to 0,等于0是分水岭脊像素 em=Lim=0; figure;imshow(em);title(背景标记); %

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论