Matlab医学图像分割区域生长

上传人:mg****2 文档编号:123178728 上传时间:2020-03-08 格式:DOC 页数:28 大小:2.24MB
返回 下载 相关 举报
Matlab医学图像分割区域生长_第1页
第1页 / 共28页
Matlab医学图像分割区域生长_第2页
第2页 / 共28页
Matlab医学图像分割区域生长_第3页
第3页 / 共28页
Matlab医学图像分割区域生长_第4页
第4页 / 共28页
Matlab医学图像分割区域生长_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《Matlab医学图像分割区域生长》由会员分享,可在线阅读,更多相关《Matlab医学图像分割区域生长(28页珍藏版)》请在金锄头文库上搜索。

1、.实验十 医学图像分割(二)实验目的:1. 了解图像分割的基本理论和方法;2. 掌握阈值分割的方法和阈值的选择;3. 掌握基于分水岭分割的原理和应用;实验内容:1. 区域生长法利用图像像素间的相似性进行分割,调用regiongrow函数对图像weld.tif进行处理,注意参数中S(种子值),T(阈值)的选择对分割效果的影响。S=255,T65和S255 T150和S150,T65三组值进行处理,理解在区域生长法的原理。同时对liver.bmp,自己选择合适的S和T,以较好得分割出肝脏。代码1:close all;f=imread(weld.tif);figure(1),imshow(f),ti

2、tle(原图);g1,NR=regiongrow(f,255,65);g2,NR=regiongrow(f,255,150);g3,NR=regiongrow(f,150,65); figure(2),imshow(g1),title(S=255,T=65);figure(3),imshow(g2),title(S=255,T=150);figure(4),imshow(g3),title(S=150,T=65);y,x=ginput();x=floor(x);y=floor(y);G=zeros(size(g);G(g3=g3(x,y)=255;结果:代码2:close all;f=imre

3、ad(liver1.bmp);figure(1),imshow(f),title(原图);g=regiongrow(f,255,135);%肝脏分离figure(2),imshow(g),title(S=255,T=135);y,x=ginput();x=floor(x);y=floor(y);G=zeros(size(g);G(g=g(x,y)=255;figure(3),imshow(G);结果: 2. 编写m文件,实现单一型或质心型区域生长算法。由用户通过ginput函数选择种子点,然后根据用户输入的阈值T进行区域生长。输入为:待分割的图片f和阈值T,输出为分割后的二值图片g。代码1:(

4、单一型)function a=regiongrow2(f,T)imshow(f);se=0,1,0;1,1,1;0,1,0;y,x=ginput();x=floor(x);y=floor(y);a=im2bw(zeros(size(f);a(x,y)=1;while 1 b=imdilate(a,se); P=b-a; find(P); index=find(P); n=size(index); for i=1:n t=abs(f(x,y)-f(index(i); if t=T b(index(i)=0; P(index(i)=0; end end a=b; if sum(sum(P)=0 b

5、reak; end end 应用:f=imread(weld.tif);figure(1),imshow(f)g=regiongrow3(f,30);figure(2),imshow(g)代码2:(质心型)function a=regiongrow4(f,T)imshow(f);se=0,1,0;1,1,1;0,1,0;y,x=ginput();x=floor(x);y=floor(y);a=im2bw(zeros(size(f);a(x,y)=1;average=f(x,y);while 1 b=imdilate(a,se); P=b-a; index=find(P); n=size(ind

6、ex); for i=1:n t=abs(average-double(f(index(i); if t=T b(index(i)=0; P(index(i)=0; end end a=b; indexb=find(b); N=length(indexb); All=0; for i=1:N All=All+double(f(indexb(i); end average=All/N; if sum(sum(P)=0 break; end end结果:3. 用课本中分水岭的距离变换分水岭分割、梯度分水岭分割和控制标记符分水岭分割对liver1和liver2图像进行分割,分析上述算法的特点和存在的

7、问题,考虑如何进行改进?代码1:close all;f=imread(liver1.bmp);figure(1),imshow(f);%g=im2bw(f,graythresh(f);g,NR=regiongrow(f,255,135);%肝脏分离figure(2),imshow(g);gc=g;D=bwdist(gc);L=watershed(-D);w=L=0;figure(3),imshow(w);g2= g & w;figure(5),imshow(g2);代码2:close all;f=imread(liver1.bmp);F=regiongrow(f,255,135);%F=im2

8、bw(f,graythresh(f);figure(1),imshow(F);h=fspecial(sobel);fd=double(f);g=sqrt(imfilter(fd,h,replicate).2+. imfilter(fd,h,replicate).2);figure(2),imshow(g); L=watershed(g);wr=L=0;figure(3),imshow(wr);g2=imclose(imopen(g,ones(3,3),ones(3,3);L2=watershed(g2);wr2=L2=0;f2=F;f2(wr2)=255;figure(4),imshow(f2

9、);代码3:close all;f=imread(liver1.bmp);F=regiongrow(f,255,135);%F=im2bw(f,graythresh(f);figure(1),imshow(F);h=fspecial(sobel);fd=double(f);g=sqrt(imfilter(fd,h,replicate).2+. imfilter(fd,h,replicate).2);figure(2),imshow(g); L=watershed(g);wr=L=0;figure(3),imshow(wr);rm=imregionalmin(g);im=imextendedmi

10、n(f,2);fim=f;fim(im)=175;Lim=watershed(bwdist(im);em=Lim=0;figure(4),imshow(em);g2=imimposemin(g,im|em);L2=watershed(g2);f2=f;f2(L2=0)=255;figure(5),imshow(f2);实验报告:1. 实验目的2. 实验内容(部分可略写)每题分开写,并标明题号3. 实验小结和体会小结:1、 第一题重在理解S和T的涵义,若S是一个标量,则它定义一个亮度值,f中有着该值的所有点都变成种子;若T是标量,则它会定义一个全局阈值,阈值用来测试图像中的像素是否与该种子或8连接种子足够相似。2、 第二题比较注重算法。用膨胀的方法解决四连接生长点的确定,即先膨胀再进行判断,直到没有出现新的生长点为止。效果与重建很像,但算法不同,适合不同的场合。第三题重在理解分水岭的原理,即基于距离变换找出分水岭。但对于梯度分水岭和控制标记符的分水岭分割不理解,需要听老师和其他同学的讲解。还有第二张liver2.bmp有点问题,需要用以前的图片。单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善 教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。3、.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 设计及方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号