实验6图像分割实验目的:1.熟悉区域生长法;2.分水岭分割算法实验内容:1.区域生长法利用图像像素间的相似性进行分割,调用regiongrow函数对图像weld.tif进行处理,注意参数中S(种子值),T(阈值)的选择对分割效果的影响。S=255,T=65和S=255T=150和S=150,T=65三组值进行处理,理解在区域生长法的原理。同时对liver.bmp,自己选择合适的S和T,以较好的分割出肝脏。参考书本P309例10.8答:f=imread('weld.tif');imshow(f)title('weld.tif');f1=regiongrow(f,255,65);figure,imshow(f1)title('S=255,T=65');f2=regiongrow(f,255,150);figure,imshow(f2)title('S=255,T=150');f3=regiongrow(f,150,65);figure,imshow(f3)title('S=150,T=65');f=imread('liver.bmp');imshow(f)title('liver.bmp');[g,NR,SI,TI]=regiongrow(f,175,20);figure,imshow(g)title('区域生长S=175,T=20');gf=imfill(g);figure,imshow(gf)title('孔洞填充');se=strel('disk',10);ge=imerode(gf,se);figure,imshow(ge)title('腐蚀');ir=imreconstruct(ge,gf);figure,imshow(ir)title('重构');se=strel('disk',2);d=imdilate(ir,se);figure,imshow(d);title('膨胀分离出的肝脏');2.利用分水岭分割算法对图像rice.tif进行分割,并对出现过分割现象提出解决方案。(可以尝试tophat等学过的算法对图像进行预处理后再分割;使用不同的结构元素和参数;使用梯度分水岭算法与标记符控制算法等。比较得到最好的结果)。答:f=imread('rice.tif');imshow(f)title('rice.tif');g=im2bw(f,graythresh(f));gc=~g;D=bwdist(gc);L=watershed(-D);w=L==0;g2=g&~w;figure,imshow(g2)title('用距离和分水岭变换分割')f=imread('rice.tif');se=strel('disk',10);ft=imtophat(f,se);h=fspecial('sobel');fd=double(ft);g=sqrt(imfilter(fd,h,'replicate').^2+imfilter(fd,h','replicate').^2);L=watershed(g);wr=L==0;g2=imclose(imopen(g,ones(3,3)),ones(3,3));L2=watershed(g2);wr2=L2==0;f2=ft;f2(wr2)=255;figure,imshow(f2)title('用梯度的分水岭分割')f=imread('rice.tif');se=strel('disk',10);ft=imtophat(f,se);h=fspecial('sobel');fd=double(ft);g=sqrt(imfilter(fd,h,'replicate').^2+imfilter(fd,h','replicate').^2);L=watershed(g);t=graythresh(ft);im=imextendedmin(ft,t*255);im=~im;Lim=watershed(bwdist(im));em=Lim==0;g2=imimposemin(g,im|em);L2=watershed(g2);f2=ft;f2(L2==0)=255;figure,imshow(f2)title('控制标记符的分水岭分割')f=imread('rice.tif');se=strel('disk',20);f=imtophat(fse);hy=fspecial('sobel');hx=hy';fy=imfilter(double(f),hy,'replicate');fx=imfilter(double(f),hx,'replicate');g=sqrt(fx.^2+fy.^2);L=watershed(g);imshow(g,[]);title('梯度图');se=strel('disk',2);fe=imerode(f,se);figure,imshow(fe,[]);title('腐蚀');ir=imreconstruct(fe,f);figure,imshow(ir,[]);title('基于开操作的重建');fird=imdilate(ir,se);ir2=imreconstruct(imcomplement(fird),imcomplement(ir));ir2c=imcomplement(ir2);figure,imshow(ir2c,[]);title('基于闭操作的重建');fgm=imregionalmax(ir2c);figure,imshow(fgm,[]);title('局部最大值');se2=strel(ones(3,2));fgm2=imclose(fgm,se2);fgm3=imerode(fgm2,se2);fgm4=bwareaopen(fgm3,5);figure,imshow(fgm4,[]);title('像素个数大于5的局部最大值区域');bw=im2bw(ir2c,graythresh(ir2c));figure,imshow(bw,[]);title('重建图像的阈值化二值图');D=bwdist(bw);L=watershed(D);w=L==0;figure,imshow(w);title('背景分水岭线');g2=imimposemin(g,w|fgm4);figure,imshow(g2);title('改写的梯度图');L2=watershed(g2);figure,imshow(L2);title('改写的梯度图的分水岭结果');f(L2==0)=255;figure,imshow(f);title('改写的梯度图的分割结果');3.计算图cancer02.bmp的链码等特性,仿照例子11.3答:f=imread('cancer02.bmp');h=fspecial('average',9);g=imfilter(f,h,'replicate');g=im2bw(g,0.5);B=boundaries(g);%计算图像的边界d=cellfun('length',B);%最长边界[max_d,k]=max(d);b=B{k};[mn]=size(g);g=bound2im(b,m,n,min(b(:,1)),min(b(:,2)));[s,su]=bsubsamp(b,50);%对边界二次取样c=fchcode(su);c.fccans=Columns1through1420200606646443Column1524.提高题:利用texture_spacial函数,计算下图所示编号1-7的区域,请从liver图大致按照示意图提起25*25的区域,分别计算该区域的灰度共生矩阵的最大概率、一致性和熵,分析不同区域各个特性的特点,思考一下如果要分割出1和4区域所示的肝脏区域,应该选择那些特性,阈值为多少合适?答:f=double(imread('liver.bmp'));imshow(uint8(f));[y1,x1]=getpts;%取点x1=uint16(x1);y1=uint16(y1);F1=imcrop(f,[x1,y1,24,24]);%获取区域disp('区域1特性:平均亮度、平均对比度、平滑度、三阶矩、一致性和熵');statxture(F1)g=f;%将选的区域标定出来g(x1:x1+24,y1)=255;g(x1:x1+24,y1+24)=255;g(x1,y1:y1+24)=255;g(x1+24,y1:y1+24)=255;imshow(uint8(g));[y2,x2]=getpts;x2=uint16(x2);y2=uint16(y2);F2=imcrop(g,[x2,y2,24,24]);disp('区域2特性:平均亮度、平均对比度、平滑度、三阶矩、一致性和熵');statxture(F2)g=g;g(x2:x2+24,y2)=255;g(x2:x2+24,y2+24)=255;g(x2,y2:y2+24)=255;g(x2+24,y2:y2+24)=255;imshow(uint8(g));[y3,x3]=getpts;x3=uint16(x3);y3=uint16(y3);F3=imcrop(g,[x3,y3,24,24]);disp('区域3特性:平均亮度、平均对比度、平滑度、三阶矩、一致性和熵');statxture(F3)g=g;g(x3:x3+24,y3)=255;g(x3:x3+24,y3+24)=255;g(x3,y3:y3+24)=255;g(x3+24,y3:y3+24)=255;imshow(uint8(g));[y4,x4]=getpts;x4=uint16(x4);y4=uint16(y4);F4=imcrop(g,[x4,y4,24,24]);disp('区域4特性:平均亮度、平均对比度、平滑度、三阶矩、一致性和熵');statxture(F4)g=g;g(x4:x4+24,y4)=255;g(x4:x4+24,y4+24)=255;g(x4,y4:y4+24)=255;g(x4+24,y4:y4+24)=255;imshow(uint8(g));[y5,x5]=getpts;x5=uint16(x5);y5=uint16(y5);F5=imcrop(g,[x5,y5,24,24]);disp('区域5特性:平均亮度、平均对比度、平滑度、三阶矩、一致性和熵');statxture(F5)g=g;g(x5:x5+24,y5)=255;g(x5:x5+24,y5+24)=255;g(x5,y5:y5+24)=255;g(x5+24,y5:y5+24)=255;imshow(uint8(g));[y6,x6]=getpts;x6=uint16(x6);y6=uint16(y6);F6=imcrop(g,[x6,y6,24,24]);disp('区域6特性:平均亮度、平均对比度、平滑度、三阶矩、一致性和熵');statxture(F6)g=g;g(x6:x6+24,y6)=255;g(x6:x6+24,y6+24)=255;g(x6,y6:y6+24)=255;g(x6+24,y6:y6+24)=255;imshow(uint8(g));[y7,x7]=getpts;x7=uint16(x7);y7=uint16(y7);F7=imcrop(g,[x7,y7,24,24]);disp('区域7特性:平均亮度、平均对比度、平滑度、三阶矩、一致性和熵');statxture(F7)g=g;g(x7:x7+24,y7)=255;g(x7