虽然很早就看过这本绿皮书,但是当时是刚入门的小菜鸟,根本就不知道这就是大名鼎鼎的大津法,当时只是觉得Otsu好奇怪的英文名字。
现在就来重新看看这个所谓的大津法:
nin_ini​表示灰度级为i的像素数。图像中的像素总数MN为MN=n0+n1+...+nL−1MN=n_0+n_1+...+n_{L-1}MN=n0​+n1​+...+nL−1​
归一化的直方图具有分量pi=ni/MNp_i=n_i/MNpi​=ni​/MN.
我们有公式(1):

我们选择一个阈值T(k)=k,0<k<L-1,并使用它把输入图像阈值化处理为两类C1和C2,其中C1由图像中灰度值范围在[0,k]内的所有像素组成,C2类似C1.
像素被分到类C1中的概率p1(k)p_1(k)p1​(k)由如下的累计和给出:

同样

那么分配到C1的像素的平均灰度值为:

第一行的p(i/C1)p(i/C_1)p(i/C1​)表示i已经被分配到C1的前提下,i占C1中所有像素的概率,第二行为简单的贝叶斯变换,因为i已经被分到了C1中,所以P(C1/i)=1P(C_1/i)=1P(C1​/i)=1,所以得到第三行的结果,其实第三行的物理意义很容易理解,即0到k的像素占总体像素的平均值除以C1占总体像素的概率,等于C1中所有像素的平均值。
同理有:

而整个图像的平均灰度由下式给出:

如果上面的公式都是正确的我们有:

为了评价级别k处的阈值“质量”我们使用归一化的无量纲矩阵:

其中σG2\sigma^2_GσG2​是全局方差:

σB2\sigma^2_BσB2​我们定义为类间方差,它定义为

其中σG2\sigma^2_GσG2​是常数,所以我们只需要使得σB2\sigma^2_BσB2​最大即可,而:

所以我们只需要使m1−m2m_1-m_2m1​−m2​最大即可,当有多个值使得m1−m2m_1-m_2m1​−m2​都最大时,我们选择其均值为最佳的分割阈值。

Otsu算法小结如下:
1.计算输入图像的归一化直方图,使用pip_ipi​i=0,1,2,…,L-1表示该直方图的各个分量。
2.对于k=0,1,2,…L-1,计算累积和P1(k)P_1(k)P1​(k).
3.对于k=0,1,2…L-1,计算累积均值m(k).
4.计算全局灰度均值mGm_GmG​。
5.对于K=0,1,2,…,L-1,计算类间方差σB2\sigma^2_BσB2​。
6.得到Otsu阈值k∗k*k∗,即使得σB2\sigma^2_BσB2​最大的k值。如果最大值不唯一,用相应检测到的各个最大值k的平均值得到k∗k*k∗。
7.在k=k*处计算可分性度量.

Otsu(大津法,最大类间方差法)相关推荐

  1. 图像处理_Ostu算法(大律法、最大类间方差法)

    一.算法简述 Otsu算法是一种用于二值化最佳阈值的选取方法.基本原理是根据阈值T将图像中的像素点分为C1和C2两类,不断的调整阈值T之后若此时两类之间存在最大的类间方差,那么此阈值即是最佳阈值. 二 ...

  2. 【机器视觉学习笔记】大津法/Otsu最大类间方差法 最佳阈值处理(C++)

    目录 概念 C++源码 OtsuThreshold 主函数 效果 完整源码 平台:Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文所用源码修改自C+ ...

  3. 图像二值化----otsu(最大类间方差法、大津算法)(二)

    转自:http://blog.stevenwang.name/ostu-threshold-56002.html OTSU算法也称最大类间差法,有时也称之为大津算法,被认为是图像分割中阈值选取的最佳算 ...

  4. 图像二值化之最大类间方差法(大津法,OTSU)

    参考文章1:图像二值化与otsu算法介绍 参考文章2:python opencv cv2.threshold() (将固定级别的阈值应用于每个数组元素)ThresholdTypes 最大类间方差法(大 ...

  5. CUDA精进之路(五):图像处理——OTSU二值算法(最大类间方差法、大津法)

    引言 最近在做医疗设备相关的项目,故在项目中大量用到了各类图像分割的算法,为了在图像中分割出特定目标,用到的算法可以有很多,比如阈值分割,多通道分割,边缘分割以及一些前沿的组合分割.而对大多数图像来说 ...

  6. 最大类间方差法(大津法OTSU)原理

    算法介绍 最大类间方差法是1979年由日本学者大津提出的,是一种自适应阈值确定的方法,又叫大津法,简称OTSU,是一种基于全局的二值化算法,它是根据图像的灰度特性,将图像分为前景和背景两个部分.当取最 ...

  7. OTSU(最大类间方差法、大津算法)

    OTSU是阈值分割中一种常用的算法,它可以根据图像自动生成最佳分割阈值.OTSU的核心思想是类间方差最大化. import cv2 import numpy as np from matplotlib ...

  8. 基于OTSU最大类间方差法的ROI分割、提取图像中的形状特征--面积、周长、离心率、zernike矩

    分享一下最近学习的图像分类方面知识,整体的思路如下(之前的汇报ppt里截的) 把这个过程拆分几个部分共同学习一下吧 1.Otsu法原理 最大类间方差法OTSU是一种自适应的全局阈值确定的方法,根据灰度 ...

  9. opencv与C++实现最大类间方差法(OTSU)进行图像二值化

    直接上代码,使用最大类间方差法进行二值化的函数 void threshold_otsu(Mat &mat, Mat &mat_thresh) //mat为输入图像,mat_thresh ...

  10. Ostu最大类间方差法的C++实现

    一.Ostu的原理 最大类间方差法是由日本学者大津(Nobuyuki Ostu)在1979年提出的,该方法根据计算公式自动计算分割单域值,是一种根据灰度图像自动计算阈值的方法.它按照灰度图像的灰度值等 ...

最新文章

  1. 【WPF】MeshGeometry3D中的Normals和TextureCoordinates属性
  2. 算法:枚举法---kotlin
  3. sklearn自学指南(part55)--决策树
  4. wordpress phpmyadmin_西部数码使用指南:虚拟主机WordPress部署SSL注意事项
  5. python listdir报错_Python常见十六个错误集合,你知道那些?
  6. 使用JavaScript重定向URL参数
  7. VB如何直接显示内存中的二进制图像数据
  8. 众专家推荐《移动微技(Mobile Widget)应用开发权威指南》
  9. JavaWeb学习(一)JavaWeb简介及Web服务器(Tomcat服务器)
  10. Linux命令对应的英文全称
  11. edid ddc 显示器识别
  12. 利用R语言编写量化投资策略
  13. Activiti 设置工作代理人
  14. 服务器没有系统能配置ip地址嘛,win10系统没有有效的ip配置怎么解决
  15. Oracle什么情况使用omf,ORACLE OMF介绍
  16. 整理一些前端模版比较好的网站
  17. WebGL--vue+openlayers实现覆盖物+popup
  18. Win10桌面图标显示不正常变成了白色
  19. 用canvas实现一个简易绘图工具
  20. mysql char30_Mysql中varchar与char的区别以及varchar(30)中的30代表的涵义

热门文章

  1. 某大学开田径运动会,现有12名选手参加100米比赛,对应的运动员号及成绩如表所示,请按照成绩排名并输出,要求每一行输出名次、运动员号及成绩
  2. Ubuntu下如何录制gif动态图
  3. origin作图怎么去除template
  4. ArcGIS连接PostgreSQL数据库,创建企业级地理数据库
  5. 计算机设备中运行速度最慢,解决办法:笔记本电脑开机缓慢且运行速度非常快,我该怎么办?计算机启动速度慢的原因和解决方法...
  6. BI中事实表和维度表的定义
  7. html网页设计作品教材制作,《网页设计与制作》网页-教材-制作.pdf
  8. VLAN的划分方法有哪些?
  9. 程序员硬核“Python抢票教程”,帮你抢回家车票(附源码)
  10. 如何使用Jmail收发邮件