1. 简介

我们在最灰度图做二值化时,需要设定一个分割阈值,我们并没有一个万能的阈值。而Otsu大津算法则是根据灰度图本身的信息,自动确定最佳阈值,实现以最佳阈值对灰度图进行二值化。
需要注意的是,大津算法并不是直接进行二值化处理,而是得到一个整型数字,也即阈值,我们得到阈值再进行二值化。

2. 原理

我们对图片进行二值化时,是希望将图片分割成两部分,暂且称之为前景和背景:

一般情况下,我们将我们感兴趣的部分称为前景,比如图中的人;对于不感兴趣的称为背景。

大津算法的思想是比较简单的,我们认为分为的前景和背景之间差异是较大的,而前景部分中的像素是相似的,背景部分中的像素是相似的:同一类中差异小,不同类中差异大。那么如果存在一个阈值,使得图像分为了前景和背景,应当符合同一类中差异最小,不同类中差异最大,这个值就是最佳阈值。根据这个最佳阈值分割的图像效果应当是最好的(即将前景和背景彻底分割开)。

那么所谓的“差异”如何表示?其实就是用方差来表示:如果单个的数据其越偏离于中心,那么,其方差值也就越大。如果同一类中方差越小,那么表示同一类中差异也小;不同类之间方差越大,表示不同类中差异越大。

方差:

3. 详细步骤


第6步中求得方差是类间方差:
f:表示front,前景
b:表示back,背景
p f p_f pf​:前景像素个数/总个数,即前景占总图的比率
p b p_b pb​:背景像素个数/总个数,即背景占总图的比率
M f M_f Mf​:前景所有像素灰度值均值
M b M_b Mb​:背景所有像素灰度值均值
M M M:所有像素灰度值均值

一个典型的2个类的方差求法

实际上图像的像素个数、每个像素的值都是已知的,唯一的变量是 T 0 T_0 T0​,所以实际上是求当 δ 2 δ^2 δ2最大时, T 0 T_0 T0​的值,典型的求导,反正只有255级,直接遍历,保存方差最大和对应的阈值即可

大津二值化算法(Otsu)相关推荐

  1. otsu阈值分割算法原理_大津二值化算法OTSU的理解

    otsu 大津算法介绍: OTSU算法是由日本学者OTSU于1979年提出的一种对图像进行二值化的高效算法. 利用阈值将原图像分成前景,背景两个图象. 前景:用n1,csum,m1来表示在当前阈值下的 ...

  2. 大津二值化算法 ( Otsu's binarization ) 自动确定二值化图像时的阈值

    大津算法,也被称作最大类间方差法,是一种自动确定二值化阈值的算法. 在这里作者不介绍算法推导的过程,算法推导过程网络上有许多介绍,这里只给出算法最终推导出的结论: 使得左侧 的值最大,就可以得到最好的 ...

  3. C++实现大津二值化算法

    文章目录 一.大津算法 二.原理 三.算法实现步骤 四.测试结果 五.完整代码 一.大津算法 大津算法(Ostu)也称最大类间方差法.顾名思义,就使两个类别之间某个属性的方差最大的方法.在图像处理中, ...

  4. 数字图像处理(四)大津二值化

    题目:使用大津二值化算法进行二值化时阈值的确定. 采用国际标准测试图像Lena. 算法原理 我们在对图片进行二值化时,是希望将图片分割成两部分,称之为前景和背景.一般情况下,我们将感兴趣的部分称为前景 ...

  5. 二值化算法OTSU源码解析

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 概述: 本文中小编将会跟大家分享一下OpenCV3.1.0中图像二 ...

  6. 【智能车】图像二值化算法--大津法OTSU

    图像二值化算法–大津法OTSU 大津算法是一种图像二值化算法,作用是确定将图像分成黑白两个部分的阈值. 大津法是针对灰度值进行阈值分割二值化,如果是彩色图像的话需要先转化成灰度图再进行计算. 方差越大 ...

  7. 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果

    十三种基于直方图的图像全局二值化算法实现 1. 什么是基于直方图的图像全局二值化算法 2. 灰度平均值 3. 百分比阈值(P-Tile法) 3. 基于双峰的阈值 3.1 基于平均值的阈值 3.2 基于 ...

  8. 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果。

    图像二值化的目的是最大限度的将图象中感兴趣的部分保留下来,在很多情况下,也是进行图像分析.特征提取与模式识别之前的必要的图像预处理过程.这个看似简单的问题,在过去的四十年里受到国内外学者的广泛关注,产 ...

  9. matlab确定灰度阈值T,matlab灰度图像二值化【灰度图像二值化算法研究】

    摘要: 在很多图像处理的过程中,经常需要对灰度图像进行二值化.本文对几种常用的图像二值化算法进行了阐述,并通过仿真,进行比较研究.根据实验结果,阐明了各种算法的优缺点. Abstract: The b ...

最新文章

  1. 11Grac+ASM+linux2.6.18 processes (100) exceeded
  2. centos python 安装
  3. Leetcode 121 动态规划(原名字不通过审核)
  4. java消息推送怎么实现_调用钉钉接口实现机器人推送消息
  5. ​稳健、可靠全真即时通信网的架构与应用
  6. Asp.NET大文件上传组件开发总结(二)---提取文件内容
  7. java怎么学好 用好接口_Java公开课|Java的实现接口怎么用,这才是学习好Java必备的实用函数,你会吗...
  8. Python验证码的生成
  9. oracle体系结构视频学习笔记
  10. 下面不是android四大组件之一的是,Android四大组件之一 Service
  11. 基于DEAP库的python进化算法--遗传算法实践--背包问题
  12. Tomcat服务器解析“GET /JavaWebDemo1/1.jsp HTTP/1.1”
  13. 【BZOJ1823】 [JSOI2010]满汉全席
  14. 计算机组成原理-面试题
  15. 关于 联想昭阳 E43A 无线开关设置的 正确解决办法
  16. Oracle VirtualBox 6.1.18 安装扩展包
  17. python生成验证码的程序_用python生成验证码图片
  18. 洛谷P5238 整数校验器【三月月赛】
  19. NRF52832学习笔记(11)——蓝牙MAC地址
  20. Java开发必学:Java翻译器软件下载手机版

热门文章

  1. FIR数字滤波器设计与软件实现
  2. fping命令-ping整个网段所有IP
  3. 嵌入式(三十一):DACADC
  4. Keras中Conv1D和Conv2D的区别
  5. ppt扇形图怎么显示数据_PPT里的扇形图/饼图怎么做才更有创意?
  6. 【CV系列】扫描线算法区域填充
  7. vue props命名为啥使用kebab-case (短横线隔开式) 来命名
  8. java卸载不了_java卸载不了怎么处理?卸载时总出现这个
  9. CSS+DIV三种布局方式
  10. 腾讯再次投资国外著名游戏开发商 入股Epic布局长远