实验名称        图像分割             
课程名称  数字图像处理及MATLAB实现   
    :
通信工程
    级:
092
学生姓名:
杨滨嘉
薛靖
阳婷
    :
09032217
09032215
09032214
:
指导教师:
 
实验日期:
    绩:
实验1:直方图阈值法实验
实验内容
利用直方图阈值法对图像进行分割
实验原理
利用灰度阈值T对物体面积进行计算的公式是:
如果阈值对应于直方图的谷,阈值从T增加到T+ΔT只会引起面积略微减少,因此,把阈值设在直方图的谷,可以把阈值选择中的错误对面积测量的影响降低到最低。
实验方法及程序
1.完成基本实验内容
2.改变阈值的大小,选择最合适的阈值进行图像分割
I=imread('cameraman.tif');
figure;
subplot(2,2,1);
imshow(I);
title('灰度图像')
axis([25,260,25,260]);
grid on;
axis on;
[m,n]=size(I);
GP=zeros(1,256);
for k=0:255
    GP(k+1)=length(find(I==k))/(m*n);
end
subplot(2,2,2),bar(0:255,GP,'g')
title('灰度直方图')
xlabel('灰度值')
ylabel('出现概率')
I1=im2bw(I,100/255);
subplot(2,2,3),imshow(I1);
title('阈值100的分割图像')
axis([25,260,25,260]);
grid on;
axis on;
I2=im2bw(I,160/255);
subplot(2,2,4),imshow(I2);
title('阈值160的分割图像')
axis([25,260,25,260]);
grid on;
axis on;
实验结果
(附图)
结果分析
1.分析阈值不同对图像分割的影响
当使用阈值规则进行图像分割时,所有灰度值大于或等于某阈值的像素都被判属于物体,所有灰度值小于该阈值的像素被排除在物体之外。
阈值分别设为100160时,如图所示。当阈值增大时,会引起面积略微减少。
2.分析阈值分割的应用场合
适用于物体与背景有较强对比的景物分割。
2. 实验2:自动阈值Otsu法实验
实验内容
利用自动阈值Otsu法对图像进行分割
实验原理
k0~L-1变化,计算在不同k值下的类间方差使得最大时的那个k值就是所要求的最优阈值。
实验方法及程序
clc
clear all
I=imread('tire.tif')
subplot(1,2,1),imshow(I)
subplot(1,2,1),imshow(I);
title('原始图像')
axis([0,210,0,210]);
grid on;
axis on;
level=graythresh(I);
BW=im2bw(I,level);
subplot(1,2,2),imshow(BW);
title('Otsu法阈值分割图像')
axis([0,210,0,210]);
grid on;
axis on;
实验结果
(附图)
结果分析
对运行的结果图进行解释
该图是以最佳阈值将图像的灰度直方图分割成两部分,使两部分之间的方差取最大值,即物体和背景分离性达到最大。
实验3:迭代法求阈值实验
实验内容
利用迭代法求阈值
实验原理
图像中前景与背景之间的灰度分布为相互不重叠,在这个前提下,实现两类对象的阈值分割。
实验方法及程序
I=imread('lena.jpg');
[width,height]=size(I);
I=double(I);
T=(min(I(:))+max(I(:)))/2;
done=false;
i=0;
while~done
    r1=find(I<=T);
    r2=find(I>T);
    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)
实验结果
(附图)
结果分析
分析迭代法的优点
迭代法选取的阈值能区分出图像的前景和背景的主要区域所在。
实验4:分水岭算法分割图像实验
实验内容
利用分水岭算法分割图像
实验原理
分水岭算法不是简单的将图像在最佳灰度级进行阈值处理,而是从一个偏低但仍然能正确分割各个物体的阈值的开始。随着阈值逐渐上升到最佳值,使各个物体不会被合并。解决了由于物体靠的太近而不能用全局阈值解决的问题。
实验方法及程序
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('springboot菜鸟教程eclipse二进制图像')
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('分水岭方法')
实验结果
(附图)
结果分析
分析分水岭算法的优缺点
优点:可以解决那些由于物体靠的太近而不能用全局阈值解决的问题。
    缺点:如果初始的阈值太低,那么低对比度的物体开始时会被丢失,然后随着预知的增加就会和相邻的物体合并。如果初始阈值太高,物体一开始便会被合并。最终的阈值决定了最后的边界与实际物体的吻合程度。
实验5:梯度算子实现图像边缘检测实验
实验内容
利用梯度算子实现图像边缘检测
实验原理
边缘检测是对灰度变化的度量与定位,对图像曲面来说它的值的变化剧烈程度可以通过导数来度量,边缘可以用连续图像f(x,y)的梯度Δf来表示,梯度的模可以度量边缘的强度,在点f(x,y)处,梯度的幅度可以用下式表示:
1、Roberts边缘算子
2Sobel边缘算子
-1
-2
-1
0
0
0
1
2
1
-1
0
1
-2
0
2
-1
0
1
3Prewitt边缘算子
-1
-1
-1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
实验方法及程序
I=imread('lena.jpg');
subplot(2,3,1);
imshow(I);
title('原始图像');
axis([0,255,0,255]);
grid on;
axis on;
I1=im2bw(I);
subplot(2,3,2);
imshow(I1);
title('二值图像');
axis([0,255,0,255]);
grid on;
axis on;
I2=edge(I,'roberts');
subplot(2,3,3);
imshow(I2);
title('roberts算子分割结果');
axis([0,255,0,255]);
grid on;
axis on;
I3=edge(I,'roberts');
subplot(2,3,4);
imshow(I3);
title('sobel算子分割结果');
axis([0,255,0,255]);
grid on;
axis on;
I4=edge(I,'roberts');
subplot(2,3,5);
imshow(I4);
title('prewitt算子分割结果');
axis([0,255,0,255]);
grid on;
axis on;
实验结果
(附图)
结果分析
1. 分析梯度算子的优缺点
可以产生一条闭合的连通边界,填补了因为噪声和阴影的影响所产生的间隙。
2. 对比分析各梯度算子的优缺点

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。