Matlab|图像处理04|图像分割-阈值分割方法

一、人工阈值分割方法threshold_test1.m

1、分析修改阈值对分割结果的影响

分析:取直方图中第一个谷底的灰度值作为阈值,图像分割效果较好。当阈值改变时,分割后的图像有部分信息丢失,本图中当阈值减小时分割后的图像黑色部分较多,当阈值增大时分割后的图像白色部分较多。
在这里插入图片描述

[I,map]=imread('cameraman.tif');   % 读取灰度图像  
imshow(I);figure;                     % 显示原图图像
J=imhist(I);imhist(I);              % 提取图像中的直方图信息;将图像转换为直方图信息
[M,N]=size(I);                        % 直方图信息的高和宽
for i=1:1:M                           
for j=1:1:N                           % 遍历像素点
    if I(i,j)>80                      % 阈值为80
        g(i,j)=0;                      %大于80的点取0(黑色
    else g(i,j)=1;                    % 小于等于80的点取1(白色
       end
 end
end
figure;imshow(g);                     % 显示手动阈值分割后的图像

二、迭代阈值分割方法-自动阈值方法threshold_test2.m

%2 迭代阈值分割
f=imread('cameraman.tif');            %读取图像       
subplot(1,2,1);imshow(f);           
title('原始图像');                   
f=double(f);                          % 返回double类型   
T=(min(f(:))+max(f(:)))/2;            % 求原图大小平均值,并作为初始阈值T       
done=false;                           % 赋值,if(false)  
i=0;                                  % 赋值,迭代次数
while~done                            % 与更新后的done比较   
    r1=find(f<=T);                    % 小于阈值的点,作为目标    
    r2=find(f>T);                     % 大于阈值的点,作为背景
    Tnew=(mean(f(r1))+mean(f(r2)))/2; % 计算新的阈值Tnew,目标灰度值和背景都取平均
done=abs(Tnew-T)<1;                   % 迭代至两次阈值的灰度变化不超过1时停止
    T=Tnew;                           % 更新阈值T  
    i=i+1;                            % 更新迭代次数   
end
f(r1)=0;                              % 进行二值分割,小于最终的阈值的点为0(黑色),    
f(r2)=1;                              % 大于最终的阈值的点为1(白色)             
subplot(1,2,2);                       
imshow(f);                          
title('迭代阈值二值化图像');  

三、自适应阈值方法

f=imread('cameraman.tif');
figure,subplot(1,2,1),imshow(f),title('原始图像');
h = imbinarize(f,'adaptive','ForegroundPolarity','dark','Sensitivity',0.4);
 %自适应阈值分割,ForegroundPolarity 参数指示前景比背景暗
subplot(1,2,2),imshow(h),title('自适应阈值分割图像');

在这里插入图片描述

四、对比手动阈值(threshold_test1.m)、自动阈值(threshold_test2.m)、自适应阈值与分水岭分割算法(Water tset.m)的分割结果,分析他们的优缺点.

答:
1、阈值分割算法能够较快的完成图像分割,但是它考虑灰度信息而没有考虑空间信息,不适用于多通道图片,也不适用于特征值相差不大的图像,并对于噪声和灰度不均匀敏感,对于背景与目标区域灰度差异较小的图像分割效果不好。手动阈值分割使用双峰法需要有一定的图像先验知识,因为同一个直方图可以对应若干种不同的图像。自动阈值法迭代法只适用于直方图有明显波谷的情况,其他情况不理想。
2、自适应阈值法的思想不是计算全局图像的阈值,而是根据图像不同区域亮度分布,计算其局部阈值,所以对于图像不同区域,能够自适应计算不同的阈值,因此被称为自适应阈值法。优点是在一定条件下受图像对比度与亮度变化的影响很小。缺点是该方法只是借助了图像的像素灰度信息,并未考虑像素间的空间相关信息(如邻域信息),加之外部干扰的存在,使得灰度直方图的波峰和波谷并不一定明显,抗干扰性较差。
3、分水岭算法可处理细胞粘连问题,分割精度高。但是由于噪声点或者其它干扰因素的存在,常常存在过度分割的现象,这是因为过多局部极值点的存在而产生许多小的集水盆地,从而导致分割后的图像不能将图像中有意义的区域表示出来。

猜你喜欢

转载自blog.csdn.net/ariarko/article/details/128541536
今日推荐