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

这篇具有很好参考价值的文章主要介绍了Matlab|图像处理04|图像分割-阈值分割方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

分析:取直方图中第一个谷底的灰度值作为阈值,图像分割效果较好。当阈值改变时,分割后的图像有部分信息丢失,本图中当阈值减小时分割后的图像黑色部分较多,当阈值增大时分割后的图像白色部分较多。
Matlab|图像处理04|图像分割-阈值分割方法

[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('自适应阈值分割图像');

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

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

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

到了这里,关于Matlab|图像处理04|图像分割-阈值分割方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图像处理之阈值分割[全局阈值、Otsu阈值和迭代式阈值分割]

    一、阈值分割基本定义 阈值分割技术是最经典和流行的图像分割方法之一,也是最简单的一种图像分割方法。此技术 关键在于寻找适当的灰度阈值,通常是根据图像的灰度直方图来选取。它是用一个或几个阈值将图像的灰度级分为几个部分,认为属于同一个部分的像素是同

    2024年02月03日
    浏览(37)
  • 图像处理与计算机视觉--第五章-图像分割-自适应阈值分割

      在图片处理过程中,针对铺前进行二值化等操作的时候,我们希望能够将图片相应区域内所有的信息提供保留。实验室环境下,相应的素材是模板化的,但是将实验室方法应用于现实环境中时,我们会发现光影环境对于效果的影响其实是很大的。在这种情况下进行处理,

    2024年02月07日
    浏览(56)
  • [图像处理]14.分割算法比较 OTSU算法+自适应阈值算法+分水岭

    参考文献: OTSU阈值分割+孔洞填充+海陆分离_SwordKii的博客-CSDN博客 drawContours函数_普通网友的博客-CSDN博客_drawcontours R329-opencv阈值分割算法——自适应阈值_Third Impact的博客-CSDN博客_opencv自适应阈值分割 分水岭算法的python实现及解析_进不去的博客-CSDN博客_python分水岭算法 分水

    2024年02月09日
    浏览(52)
  • Matlab图像处理-迭代式阈值选择法

      基本思想 迭代式阈值选择法的基本思想是:开始时,选择一个阈值作为初始估计值,然后按某种策略不断地改进这一估计值,直到满足给定的准则为止。在迭代过程中,关键之处在于选择什么样的阈值改进策略。好的阈值改进策略应该具备两个特征:一是能够快速收敛,二

    2024年02月09日
    浏览(36)
  • OPENCV C++图像提取,图像处理,roi,阈值分割,连通区域筛选,边缘检测(以箱子边缘框选为例)

    本周有机会接触了一点opnev, 在此做一下记录, 最终以 框选出下图箱子为目的( 图片箱子为相机实拍结果,曝光有点低,会有亿点点暗 ), 本文会拆解步骤并附上图片, 完整的源码在最后.PS: 本文参考了好多大佬分享的理论知识, 在此先感谢大佬的分享~~ 首先是梳理一下流程, 下图是

    2024年02月07日
    浏览(52)
  • Matlab图像处理-最大类间方差阈值选择法(Otsu)

    基本思想 最大类间方差阈值选择法又称为 Otsu 算法,该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分,使两部分之间的方差取得最大值,即分离性最大。 示例代码

    2024年02月09日
    浏览(38)
  • 【图像处理】基于收缩系数的粒子群优化和引力搜索算法的多级图像阈值研究【CPSOGSA】(Matlab代码实现)

      💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥   🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码及文献

    2024年02月12日
    浏览(49)
  • 【数字图像处理】实验三 图像分割(MATLAB实现)

    目录 一、实验意义及目的 二、实验内容 三、Matlab 相关函数介绍 四、算法原理 五、参考代码及扩展代码流程图 (1)参考代码流程图 (2)扩展代码流程图 六、参考代码 七、实验要求 (1)尝试不同的阈值选择方法,实现灰度图像二值化 (2)变换参数实现形态学滤波,查看滤波

    2024年02月05日
    浏览(51)
  • 形态学图像处理和图像分割MATLAB实验

    一、实验目的 理解腐蚀和膨胀的原理,掌握开运算、闭运算及形态学的边界提取。 掌握孤立点检测、线检测和边缘检测的方法。 掌握全局阈值处理的方法。 二、实验内容 1. 开运算和闭运算实验。 图1(a)显示了一幅被噪声图像污染的指纹图像,图1(b)给出了结构元,请自编程

    2024年02月06日
    浏览(51)
  • 如何在 MATLAB 中进行图像分割(matlab仿真与图像处理系列第7期)

    在 MATLAB 中进行图像分割有多种方法,下面介绍一些常用的方法: 基于阈值的二值化分割 这是一种最简单的分割方法,将图像分为两个部分:背景和前景。其主要思想是,选择一个阈值,将图像中的像素值与阈值进行比较,将像素值大于阈值的像素标记为前景(白色),将像

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包