实验5图像分割.docx
《实验5图像分割.docx》由会员分享,可在线阅读,更多相关《实验5图像分割.docx(15页珍藏版)》请在冰点文库上搜索。
实验5图像分割
实验4图像分割
实验目的:
1.了解图像分割的基本理论和方法;
2.掌握对图像进行点、线和边缘检测的方法;
3.掌握阈值分割的方法和阈值的选择;
4.熟悉区域生长法和分水岭分割算法
实验内容:
1.对图片lung2.bmp和加噪声的lung3.bmp分别用3*3的sobel算子、prewitt算子、log算子、canny算子进行处理,根据处理结果分析上述算子,分别是什么类型的?
有何作用?
思考一下如何设计算子。
lung3.bmp为g=imnoise(f,”salt&pepper”,0.02)(0.02表示发生概率)
f=imread('lung2.bmp');[fs,t]=edge(f,'sobel','both');
imshow(fs),title'f-sobel';
>>t(t=0.2149)
[fp,t]=edge(f,'prewitt');
>>imshow(fp),title'f-prewitt';
>>t(t=0.2089)
[fl,t]=edge(f,'log');
>>imshow(fl),title'f-log';
>>t
t=
0.0071
[fc,t]=edge(f,'canny');
>>imshow(fc),title'f-canny';
>>t
t=
0.01250.0313
>>g=imnoise(f,'salt&pepper',0.02);
imshow(g),title'g';
[gs,t]=edge(g,'sobel','both');
>>t
t=
0.2423
>>[gp,t]=edge(g,'prewitt');
>>t
t=
0.2338
[gl,t]=edge(g,'log');
>>imshow(gl),title'g-log';
>>t
t=
0.0085
[gc,t]=edge(g,'canny');
>>imshow(gc),title'g-canny';
>>t
Prewitt算子和Sobel算子提取边缘的结果差不多。
Sobel算子在提取边缘的同时它对噪声具有平滑作用,能够抑制一定的噪声,sobel算子要比prewitt算子更能准确检测图像边缘。
LOG算子是个二阶算子,在对图像进行差分运算之前,先对图像使用高斯低通滤波器进行平滑处理,以减少噪声,因此缓解了一般差分对噪声响应很敏感的问题,但它对噪声过于敏感,使其使用大为受限。
Canny算子提取的边缘最为完整,而且边缘的连续性很好,定位比较精确。
但在实际工作应用中编程较为复杂且运算较慢。
总的来说就是:
Sobel算子、Prewitt算子的处理结果连续性不好,LOG算子的处理结果不精确,而Canny算子的处理结果更多更精确地保留了图像的边缘特征,具有较好的连续性。
2.
(1)对图片lung.bmp用im2bw进行处理,其分割的阈值分别设为0.05,0.15和0.7,分析哪个效果好(结合图像的直方图)。
f=imread('lung.bmp');imhist(f)
>>f1=im2bw(f,0.05);
>>imshow(f1),title'0.05';
f2=im2bw(f,0.15);
>>imshow(f2),title'0.15';
f3=im2bw(f,0.7);
>>imshow(f3),title'0.7';
(2)用全局阈值法或Otsu算法计算出合适的阈值。
t=graythresh(f);
>>t
t=
0.1647
f4=im2bw(f,graythresh(f));
>>imshow(f4);
(3)对分割出来的二值图像运用所学的形态学知识,得到肺部图像。
提示:
如f为原图像,fillhole为处理后的二值图像(其中肺部为白色,其他为黑色),则以下语句可以得到原图中的肺部图像。
f(fillhole==0)=255;%或f(fillhole==0)=0也可以
F=imfill(~f2,'holes');f(F==0)=255;
>>figure,imshow(f),title'f(F)';
3.编写m文件globalthreshold.m,完成对输入图片全局阈值的计算(参见课本305页的算法),输入参数为图片f,初始阈值T(默认为min+max/2),还有差值范围T0(默认5)(T0表示这一次计算得到的T与上一次的T值之差用计算得到的阈值对lung.bmp进行处理,看看效果如何?
f=imread('lung.bmp');
>>T=globalthreshold(f);
>>T
T=
42.5917
>>fn=im2bw(f,(T/255));
>>imshow(fn);
4.区域生长法利用图像像素间的相似性进行分割,调用regiongrow函数对图像weld.tif进行处理,注意参数中S(种子值),T(阈值)的选择对分割效果的影响。
S=255,T=65和S=255T=150和S=150,T=65三组值进行处理,理解在区域生长法的原理。
同时对liver.bmp,自己选择合适的S和T,以较好的分割出肝脏。
参考书本P309例10.8
实验报告:
1.实验目的
2.实验内容(部分可略写)每题分开写,并标明题号
3.实验小结和体会