1979-A threshold selection method from gray-level histograms

2024-01-20 01:36

本文主要是介绍1979-A threshold selection method from gray-level histograms,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 论文简介

《A threshold selection method from gray-level histograms》是由日本学者大津于 1979 年发表在 IEEE TRANSACTIONS ON SYSTEMS 上的一篇论文。该论文提出了一种基于图像灰度直方图的阈值化方法,计算简单,且不受图像亮度和对比度的影响,被称为阈值分割领域的最佳算法之一。以下称 Otsu 法。

2 算法原理

假设原始图像的最大灰度级为 L L L,第 i i i 级的像素数用 n i n_i ni 表示,那么原始图像的总像素数 N N N 计算如下:
N = n 1 + n 2 + . . . + n i + . . . + n L (1) {N=n_1+n_2+...+n_i+...+n_L} \tag{1} N=n1+n2+...+ni+...+nL(1)
归一化直方图 p i p_i pi 表示如下:
p i = n i / N , p i ≥ 0 , ∑ i = 1 L p i = 1 (2) {p_i=n_i/N},{\quad \quad} p_i \geq 0,{\sum_{i=1}^Lp_i=1} \tag{2} pi=ni/N,pi0,i=1Lpi=1(2)
现假设通过 k k k 级阈值将直方图分为 C 0 C_0 C0 C 1 C_1 C1 两类(目标和背景),则 C 0 C_0 C0 C 1 C_1 C1 的累积概率、均值分别为:
ω 0 = ∑ i = 1 k p i (3) \omega_0={\sum_{i=1}^{k}p_i} \tag{3} ω0=i=1kpi(3) ω 1 = ∑ i = k + 1 L p i (4) \omega_1={\sum_{i=k+1}^{L}p_i} \tag{4} ω1=i=k+1Lpi(4) μ 0 = ∑ i = 1 k i p i / ω 0 (5) \mu_0={\sum_{i=1}^{k}ip_i/{\omega_0}} \tag{5} μ0=i=1kipi/ω0(5) μ 1 = ∑ i = k + 1 L i p i / ω 1 (6) \mu_1={\sum_{i=k+1}^{L}ip_i/{\omega_1}} \tag{6} μ1=i=k+1Lipi/ω1(6)
k k k 级阈值下的类间方差 σ B \sigma_B σB 为:
σ B = ω 0 ω 1 ( μ 1 − μ 0 ) 2 (7) \sigma_B={\omega_0}{\omega_1}{\left({\mu_1}-{\mu_0}\right)}^2 \tag{7} σB=ω0ω1(μ1μ0)2(7)
最佳阈值 k ∗ k^* k 计算如下:
σ B ( k ∗ ) = max ⁡ 1 ≤ k < L σ B ( k ) (8) {\sigma_B\left(k^*\right)}={\max_{1{\leq}k<L}}{\sigma_B\left(k\right)} \tag{8} σB(k)=1k<LmaxσB(k)(8)
值得注意的是,该方法非常容易拓展至多阈值的情形。

3 实验结果

在这里插入图片描述

4 参考文献

[1] Otsu N. A threshold selection method from gray-level histograms[J]. IEEE transactions on systems, man, and cybernetics, 1979, 9(1): 62-66.

5 代码链接

代码。

这篇关于1979-A threshold selection method from gray-level histograms的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/624374

相关文章

模版方法模式template method

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法

MiniCPM-V: A GPT-4V Level MLLM on Your Phone

MiniCPM-V: A GPT-4V Level MLLM on Your Phone 研究背景和动机 现有的MLLM通常需要大量的参数和计算资源,限制了其在实际应用中的范围。大部分MLLM需要部署在高性能云服务器上,这种高成本和高能耗的特点,阻碍了其在移动设备、离线和隐私保护场景中的应用。 文章主要贡献: 提出了MiniCPM-V系列模型,能在移动端设备上部署的MLLM。 性能优越:

POJ - 1979(深搜)

题目链接:点击打开链接 解析: 深搜无疑,搜的时候记得把当前点置为不可行,之后在搜周边点。另一个坑点是,要特别考虑@周边都是墙这种情况,此时输出0(只有他当前的那一个点)。 完整代码: #include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream

Failed to pull selection解决办法

今天在使用DDMS导出文档到PC端的时候,明明在file explorer里面有文件,导出时候就是失败,出现了“Failed to pull selection”错误。百度了一下,还是重启Eclipse最靠谱。

王立平--Failed to push selection: Read-only file system

往android模拟器导入资源,失败。提示:只读文件、 mnt是只读文件。应点击sdcard,,在导入

兔子--The method setLatestEventInfo(Context, CharSequence, CharSequence, PendingIntent) from the type

notification.setLatestEventInfo(context, title, message, pendingIntent);     不建议使用 低于API Level 11版本,也就是Android 2.3.3以下的系统中,setLatestEventInfo()函数是唯一的实现方法。  Intent  intent = new Intent(

【机器学习 sklearn】特征筛选feature_selection

特征筛选更加侧重于寻找那些对模型的性能提升较大的少量特征。 继续沿用Titannic数据集,这次试图通过特征刷选来寻找最佳的特征组合,并且达到提高预测准确性的目标。 #coding:utf-8from __future__ import divisionimport sysreload(sys)sys.setdefaultencoding('utf-8')import timest

探索8421码、余三码、Gray码和余三循环码的编码技术

探索8421码、余三码、Gray码和余三循环码的编码技术 编码是数字电子学中的重要概念,它在数字通信、计算机系统和数据处理等领域扮演着至关重要的角色。本文将介绍几种常见的编码方式,包括8421码、余三码、Gray码以及余三循环码,并探讨它们的原理、特点和应用场景。 1. 8421码(BCD码) 8421码(BCD码,Binary-Coded Decimal)是一种用4位二进制数表示十进制

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

Windows用户取消共享文件夹密码方法(Method for Windows Users to Cancel Shared Folder Password)

Windows用户取消访问共享文件夹密码方法 💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老 导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监