大津法又叫最大类间方差法,是于1979年由日本学者大津展之提出的一种对图像进行二值化的高效算法,是在判别与最小二乘法原理的基础上推导出来的。

算法原理

把直方图在某一阈值处分割为两组,当前分成的两组间方差最大。
假设我们有一张图像,其灰度值为1~m级,灰度值 i 的像素数为 ni
我们可以得到
像素总数 N=∑i=0nxiN=\sum_{i=0}^{n} x_iN=∑i=0n​xi​
各灰度级的概率 pi=niNpi=\frac{n_i}{N}pi=Nni​​。
然后用阈值T将其分为两组C0=∣1∽T∣C_0=\mid1\backsim T\midC0​=∣1∽T∣和C1=∣T+1∽m∣C_1=\mid T+1 \backsim m \midC1​=∣T+1∽m∣。
我们就可以得到:
C0的概率 w0=w(T)=∑i=1Tpiw_0=w(T)=\sum_{i=1}^T p_iw0​=w(T)=∑i=1T​pi​
C1的概率 w1=1−w0=∑i=T+1mpiw_1=1-w_0=\sum_{i=T+1}^m p_iw1​=1−w0​=∑i=T+1m​pi​
C0的平均值 μ0=μ(T)w(T)=∑i=1Ti∗piw0\mu_0=\frac{\mu(T)}{w(T)}=\sum_{i=1}^T \frac{i*p_i}{w_0}μ0​=w(T)μ(T)​=∑i=1T​w0​i∗pi​​
C1的平均值 μ1=μ−μ(T)1−w(T)=∑i=T+1mi∗piw1\mu_1=\frac{\mu-\mu(T)}{1-w(T)}=\sum_{i=T+1}^m \frac{i*p_i}{w_1}μ1​=1−w(T)μ−μ(T)​=∑i=T+1m​w1​i∗pi​​

其中μ\muμ是整个图像的灰度平均值,μ=w0μ0+w1μ1\mu=w_0\mu_0+w_1\mu_1μ=w0​μ0​+w1​μ1​
两组间的方差为:
δ2=w0(μ0−μ)2+w1(μ1−μ)2=w0w1(μ1−μ0)2\delta^2=w_0(\mu_0-\mu)^2+w_1(\mu_1-\mu)^2=w_0w_1(\mu_1-\mu_0)^2δ2=w0​(μ0​−μ)2+w1​(μ1​−μ)2=w0​w1​(μ1​−μ0​)2
=[μw(T)−μ(T)]2w(T)[1−w(T)]= \frac{ [\mu w_(T)-\mu(T)]^2}{w(T)[1-w(T)]} =w(T)[1−w(T)][μw(​T)−μ(T)]2​

实现代码:

import cv2
import numpy as np
import matplotlib.pyplot as pltgray=cv2.imread('lenaGray.bmp',cv2.IMREAD_GRAYSCALE)
cv2.imshow('gray',gray)N=gray.size
pro=np.array([0]*256)
for i in range(gray.shape[0]):for j in range(gray.shape[1]):pro[gray[i,j]]+=1
pro=pro/NT=0
delta=0
thresh=0
while T<=256:w0=pro[0:T].sum()w1=pro[T+1:256].sum()u0=(pro[0:T]*range(1,T+1)).sum()/w0u1=(pro[T:256]*range(T+1,257)).sum()/w1u=w0*u0+w1*u1v=w0*w1*np.square(u1-u0)if v>delta:delta=vthresh=TT+=1otsu=np.zeros(gray.shape,np.uint8)
for i in range(gray.shape[0]):for j in range(gray.shape[1]):if gray[i,j]>thresh:otsu[i,j]=255cv2.imshow('Otsu',otsu)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果展示

图像分割——大津法(Otsu)相关推荐

  1. otsu阈值分割算法原理_大津法---OTSU算法

    简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...

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

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

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

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

  4. 图像分割之大津法Otsu

    中文网上大津法的介绍很多,但是大多数给出的代码不是最优的而且存在分母为零的问题. 基本概念 大津法(简称Otsu)由1979年由日本学者大津提出的,是一种自适应阈值确定的方法,相关文献链接.它是根据图 ...

  5. 【图像处理】——图像的二值化操作及阈值化操作(固定阈值法(全局阈值法——大津法OTSU和三角法TRIANGLE)和自适应阈值法(局部阈值法——均值和高斯法))

    目录 一.二值化的概念(实际上就是一个阈值化操作) 1.概念: 2.实现方法 3.常用方法 二.阈值类型 1.常见阈值类型(主要有五种类型) (1)公式描述 (2)图表描述 2.两种特殊的阈值算法(O ...

  6. 算法001:大津法OTSU学习记录

    OTSU算法 一.大津法主要的工作是什么? 大多数时候,我们需要获取到一幅图像中的特定目标.如果可以根据像素值将图像进行合理的分割,例如全局阈值分割那样,找到一个阈值TTT,大于阈值TTT的赋予一个像 ...

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

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

  8. K210 / Openmv实现 大津法/Otsu最大类间方差法 自适应二值化

    目录 源码 效果 平台:K210 固件版本:maixpy_v0.6.2_54_g897214100_openmv_kmodel_v4_with_ide_support.bin OpenMv库自带Ots ...

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

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

最新文章

  1. Node.js express 之mongoose 从异步回调函数返回值,类似于同步
  2. xmpp关于后台挂起的消息接收,后台消息推送,本地发送通知
  3. Ibatis学习随笔
  4. android检查usb广播,Android 检测USB 音频设备
  5. ubuntu pip 安装
  6. Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记1 — 机器学习基础知识简介
  7. 闽江学院2015-2016学年下学期《软件测试》课程-第三次博客作业
  8. 在CXF API和拦截器中添加Gzip压缩
  9. python中的sorted是什么意思_python中sort与sorted区别
  10. google ads 黑名单目录
  11. 仅有 100k 参数的高效显著性目标检测方法
  12. 基于spring+quartz的分布式定时任务框架
  13. Unity2020.1新功能探路:Profiler相关更新
  14. 惠普在安全领域发力 收购大数据加密企业
  15. leetCode-数组:Remove Duplicates from Sorted Array
  16. fp算法例题_FP-growth算法
  17. 云课堂智慧职教网页版登录入口_智慧职教云课堂登录
  18. 背包问题(Knapsack Problem)—— 完全背包问题 —— (1)背包价值最大
  19. netty之wakeup详解
  20. [转载] 晓说——第29期:海上霸主航母(上)

热门文章

  1. oppo锁屏断网设置在哪里呀_oppo手机锁屏设置在哪里?
  2. 用Redis实现频繁操作的拦截,例如一天内只允许一个用户登录5次
  3. 百为STM32开发板教程之十二——NAND FLASH
  4. 牛客网华为云服务器,【华为云】-搭建私有云盘心得体会
  5. 脑海链与杨臻美学签约合作
  6. 【数模集】 图论常用算法 基础
  7. goahead服务器性能,goahead web 服务器总体结构
  8. 买房子问题c语言,『真相了』买房这道题,选C错不了
  9. HDU - 2504
  10. java将date类型转成yyyymmdd_Java中Date转换大全,返回yyyy-MM-dd的Date类型