一、阈值分割基本定义

阈值分割技术是最经典和流行的图像分割方法之一,也是最简单的一种图像分割方法。此技术关键在于寻找适当的灰度阈值,通常是根据图像的灰度直方图来选取。它是用一个或几个阈值将图像的灰度级分为几个部分,认为属于同一个部分的像素是同一个物体。它不仅可以极大的压缩数据量,而且也大大简化了图像信息的分析和处理步骤。阈值分割技术特别适用于目标和背景处于不同灰度级范围的图像。该方法的最大特点是计算简单,在重视运算效率的应用场合中得到了广泛的应用。

二、全局阈值分割

1、基本原理

可以通过全局的信息,例如整个图像的灰度直方图。如果在整个图像中只使用一个阈值,则这种方法叫做全局阈值法,整个图像分成两个区域,即目标对象( 黑色)和背景对象(白色)。全局阈值将整个图像的灰度阈值设置为常数。

对于物体和背景对比较明显的图像,其灰度直方图为双峰形状,可以选择两峰之间的波谷对应的像素值作为全局阙值,将图像分割为目标对象和背景。其公式如下:

其中f(x,y)为点(x,y)的像素值,g(x,y) 为分割后的图像,T为全局阈值,通常通过直方图来获取全局阈值

2、matlab实现

(1)实现代码:

% 采用全局阈值对图像进行分割
close all;
clear all;
clc;I=imread('rice.png');
[width,height]=size(I);
for i=1:width      % 双重for循环逐个像素进行比较计算for j=1:heightif(I(i,j)>130)K(i,j)=1;% 将大于全局阈值的像素点置为1(白色)elseK(i,j)=0;% 将小于等于全局阈值的像素点置为0(黑色)endend
endsubplot(131),imshow(I);
title('原始图像');
subplot(132),imhist(I);
title('原始图像直方图');
subplot(133),imshow(K);
title('全局阈值分割后的图像');

(2)实现效果:

二、Otsu阈值分割

1、基本原理

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

设f(x,)为图像IxN的位置(x,y)处的灰度值,灰度级为L,则f(x,y)属于[0,L-1].若灰度级i的所有像素个数为f,则第i级灰度出现的概率为:

将图像中的像素按灰度级用阈值t划分为两类,即背景C0和目标C1。背景CO的灰度级为0 ~ t-1,目标C1的灰度级为t ~ L-1。背景C0和目标C1对应的像素分别为:{f(x,y)<1}和{f(x,y)>=t}。

在MATLAB软件中,函数graythresh()采用Otsu算法获取全局阈值,获取全局阈值后,可以采用函数im2bw()进行图像分割

2、matlab实现

(1)实现代码:

% 采用Ostu算法进行图像分割
close all;
clear all;
clc;
I=imread('coins.png');
I=im2double(I);
% 函数graythresh()采用Ostu算法获取图像(既可以是灰度也可以RGB)的最优阈值,调用格式为level=graythresh(I),level大小介于[0,1之间
T=graythresh(I);
J=im2bw(I,T);subplot(121),imshow(I);
title('原始图像');
subplot(122),imshow(J);
title('Otsu阈值分割后的图像');

(2)实现效果:

四、迭代式阈值分割

1、基本原理

迭代阈值法是阈值法图像分割中比较有效的方法,通过迭代的方法来求出分割的最佳阅值,具有一定的自适应性。迭代法阈值分割的步骤如下:

(1) 设定参数T0,并选择一个初始的估计阈值T1。

(2)用阈值T分割图像。将图像分成两部分: G1 是由灰度值大于T1的像素组成,G2是由灰度值小于或等于T1的像素组成。

(3)计算G1和G2中所有像素的平均灰度值u1和u2,以及新的阈值T2 =(u1+u2)/2。

(4)如果|T2-T1|<T0,则推出T2即为最优阈值;否则,将T2赋值给T1,并重复步骤(2) ~ (4) ,直到获取最优阈值。

2、matlab实现

(1)实现代码:

% 采用迭代式阈值进行图像分割
close all;
clear all;
clc;
I=imread('cameraman.tif');
I=im2double(I);
% 第一步:设置参数T0,并选择一个初始的估计阈值T1(取图像I像素值的最小值和最大值的平均值)
T0=0.01;
T1=(min(I(:))+max(I(:)))/2;
% 第二步:用阈值T1分割图像.将图像分成两部分:r1由灰度值大于T1的像素组成,r2是由灰度小于或等于T1的像素组成
r1=find(I>T1);% find函数返回素有非零元素的位置
r2=find(I<=T1);
% 第三步:计算r1和r2中所有像素的平均灰度值h1和h2以及新的阈值T2=(h1+h2)/2
T2=(mean(I(r1))+mean(I(r2)))/2;
% 第四步:若|T2-T1|<T0,则推出T2即为最优阈值;否则,将T2赋值给T1,并重复步骤2-4直到获取最优阈值
if abs(T2-T1)<T0J=imbinarize(I,T2);  % 使用imbinarize函数进行图像分割
elsewhile abs(T2-T1)>=T0T1=T2;r1=find(I>T1);r2=find(I<=T1);T2=(mean(I(r1))+mean(I(r2)))/2;endJ=imbinarize(I,T2);  % 使用imbinarize函数进行图像分割
endsubplot(121),imshow(I);
title('原始图像');
subplot(122),imshow(J);
title('迭代式阈值分割后的图像');

(2)实现效果:

注意:除了以上三种阈值分割方法,还有其他方法比如自适应阈值分割(局部阈值分割)、最大熵阈值分割等等。但是我发现自适应阈值分割和最大熵阈值分割基本都是用C++或Python实现,还没有找到合适的使用matlab实现的代码。如果以后有机会,再回来补充吧!

由于刚刚开始学习图像处理,对于很多知识理解不到位。如有错误,恳请指正,任重而道远,慢慢加油!

图像处理之阈值分割[全局阈值、Otsu阈值和迭代式阈值分割]相关推荐

  1. 图像分割——迭代式阈值分割

    1.算法步骤: (1)预定义两阈值之差dt (2)选定初始阈值T0(一般为图像的平均灰度) (3)用T分割图像为G1.G2两组,G1由灰度值大于T的所有像素组成,G2由灰度值小于等于T的所有像素组成. ...

  2. 【医学图像处理】 2 灰度直方图、图像二值化(阈值分割)

    文章目录 1 灰度直方图 1.1 直方图理解 1.2 直方图计算 1.3 直方图均衡化 1.3.1 全局均衡化 1.3.2 自适应(局部)均值化 2 图像二值化(阈值分割) 2.1 二值化理解 2.2 ...

  3. 图像分割 - 阈值处理 - 全局阈值处理

    目录 1. 介绍 2. 代码实现 3. 代码讲解 1. 介绍 当目标和背景像素的灰度分布非常不同的时候,可以对整个图像使用全局阈值 在大多数的应用中,图像之间通常存在足够的变化,全局阈值是一种合适的办 ...

  4. matlab大津法函数,matlab 大津阈值分割【相关词_ 大津法阈值分割matlab】

    阈值法 阈值分割程序 Otsu Thresholding 赞(0) 踩(0) 收藏(0) 说明:大津法实现图像阈值分割的matlab源程序代码 (Otsu Thresholding Image sou ...

  5. 【阈值分割】基于matlab遗传算法图像自适应多阈值快速分割【含Matlab源码 2444期】

    ⛄一.基于GA的多阈值自适应图像分割 1 遗传算法(GA)的工作流程 GA[3]是由美国科学家Holland提出的,其主要优点是简单.鲁棒性强,需要解决的问题越复杂,目标越不明确,优越性越大.遗传操作 ...

  6. 稀疏编码: LASSO,近端梯度优化(PGD),迭代软阈值算法(ISTA),L-Lipschitz条件,软阈值

    在用到稀疏编码时,难免会提到以下概念: (1)LASSO(Least Absolute Shrinkage and Selection Operatior): 最小绝对收缩选择算子.这个名词听名字比较 ...

  7. 迭代硬阈值算法IHT:Iterative Hard-Thresholding

    迭代硬阈值算法IHT:Iterative Hard-Thresholding 前言 硬阈值函数 迭代硬阈值算法 参考 前言 最近在学习压缩感知的重构算法,重构算法整体来看分为三大类: ①贪婪迭代类算法 ...

  8. 迭代硬阈值(IHT)的补充说明

    题目:迭代硬阈值(IHT)的补充说明 本篇是对压缩感知重构算法之迭代硬阈值(IHT)的一个补充. 学完IHT后,近期陆续学习了硬阈值(hard Thresholding)函数和Majorization ...

  9. 迭代硬阈值(IHT)

    题目:压缩感知重构算法之迭代硬阈值(Iterative Hard Thresholding,IHT) 本篇来介绍IHT重构算法.一般在压缩感知参考文献中,提到IHT时一般引用的都是文献[1],但IHT ...

  10. 迭代硬阈值(IHT)算法解决CS优化目标函数

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 题目:迭代硬阈值(IHT)的补充说明 本篇是对压缩感知重构算法之迭代硬阈值(IHT)的一个补充 ...

最新文章

  1. [原创]某页网付费简历模板下载方法
  2. 英特尔分拆McAfee:31亿美元将多数股权卖给投资公司TPG
  3. 爬虫案例:利用python爬虫关键词批量下载高清大图
  4. 【CAS】Implementing generic double-word compare and swap for x86/x86-64
  5. 一款很哇塞的csdn开发助手,你确定不来看看嘛
  6. 宇宙飞机(space plane)
  7. 微信小程序017音乐播放器系统 php java
  8. linux的简体中文
  9. 口袋版的六爻鸿蒙,《天下3》更新公告(版本2.0.604)
  10. Java面试题(十九) 细说线程池秘境“七大参数”护法的身世
  11. 多台FX5U之间无线MODBUS组网通讯步骤详解
  12. airdots重新配对_小米蓝牙耳机AirDots 2上架:一只恢复立体声,无需重新配对
  13. c语言中的 t占的字节数,2017年9月计算机二级考试C语言预习自测题(4)
  14. 听书与看书,看电视有何区别优势?
  15. 华文慕课北大计算机组成原理陆俊林第五章课后习题解析
  16. 【redis】cluster相关知识点整理
  17. 国瀚实业|轻松理财只需做好这五件事
  18. linux开发工程师前景_选择成为软件开发工程师的5个原因
  19. 利用Keras使用非常少的数据建立强大的图像分类模型
  20. word邮件合并时出现日期不正确问题时的处理方法

热门文章

  1. scala练习——fold函数
  2. 知识库管理-运维管理
  3. python不能复制粘贴_python 复制与粘贴处理笔记
  4. SPKO的Laker分析(一)
  5. 接口返回本站点必须要开启JavaScript才能运行的解决方案
  6. IIS 中 HTTPS 自签名证书 的使用
  7. JAVA Class6
  8. 制作QQ背景音乐链接
  9. 2021FME博客大赛 —— FME在无名河流水系实体化中的应用实践
  10. CSS基础教程 -- 媒体查询屏幕适配