OTSU算法(大津算法)

Otsu 算法(大津算法)是一种经典的图像二值化方法,其核心是通过最大化类间方差自动确定全局阈值。以下是其具体工作原理和步骤:

1. 基本思想

假设图像由前景(目标)和背景两部分组成,且两者的灰度分布存在明显差异(直方图呈现双峰)。Otsu 算法通过寻找一个阈值,使得前景与背景之间的类间方差最大,从而将图像分割为二值图。

2. 数学推导

(1)计算灰度直方图
  • 统计图像中每个灰度值的像素个数,得到直方图 h[i]i为灰度级,范围 0~L-1)。
  • 总像素数 N = sum(h[i])
(2)遍历所有可能的阈值

假设阈值为 t,将图像分为两类:

  • 背景类 C0 :灰度值 < t
  • 前景类 C1 :灰度值 ≥ t
(3)计算类概率和均值
  • 背景类概率w0 = sum(h[0..t]) / N
  • 前景类概率w1 = sum(h[t+1..L-1]) / N = 1 - w0
  • 背景类均值μ0 = sum(i*h[i] for i=0..t) / (w0*N)
  • 前景类均值μ1 = sum(i*h[i] for i=t+1..L-1) / (w1*N)
(4)计算类间方差

总均值 μ = w0*μ0 + w1*μ1

类间方差 σ_b² = w0*(μ0 - μ)² + w1*(μ1 - μ)²

(5)寻找最优阈值

遍历所有可能的阈值 t,找到使 σ_b² 最大的 t,即为 Otsu 阈值。

3. 算法步骤

  1. 计算灰度直方图
  2. 遍历所有可能的阈值(通常从 1 到 L-2,避免极端值)。
  3. 计算每个阈值对应的类间方差
  4. 选择最大类间方差对应的阈值作为二值化阈值。

4. 关键特性

  • 自动性:无需手动设置阈值,适用于双峰直方图图像。
  • 鲁棒性:对光照变化和噪声有一定容忍度。
  • 局限性
    • 仅适用于双峰直方图图像,单峰或多峰场景效果差。
    • 全局阈值,无法处理光照不均匀的图像(需结合自适应阈值)。

5. 示例代码(OpenCV 实现)

python 复制代码
import cv2
import numpy as np

# 读取灰度图
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# Otsu阈值法
_, otsu_mask = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)

# 显示结果
cv2.imshow('Original', img)
cv2.imshow('Otsu Binary', otsu_mask)
cv2.waitKey(0)
cv2.destroyAllWindows()

6. 应用场景

  • 文档扫描(如身份证、票据)。
  • 简单物体分割(如硬币、印章)。
  • 图像预处理(如 OCR 前的二值化)。

7. 改进与扩展

  • 自适应 Otsu:分块计算局部 Otsu 阈值,处理非均匀光照。
  • 结合预处理:先通过高斯模糊降噪,再应用 Otsu。
  • 多阈值 Otsu:扩展到多类分割(需计算多峰直方图的类间方差)。

总结

Otsu 算法通过最大化类间方差自动确定全局阈值,是图像二值化的经典方法。其核心优势在于无需人工干预,但需图像直方图呈现双峰特性。实际应用中需结合预处理或其他方法以应对复杂场景。

相关推荐
数字供应链安全产品选型3 分钟前
安全左移动赋能:灵脉IAST交互式应用安全测试平台
网络·人工智能·安全·开源·开源软件
Dream it possible!40 分钟前
CCF CSP 第30次(2023.09)(1_坐标变换_C++)(先输入再计算;边输入边计算)
c++·算法·csp
Mountain and sea44 分钟前
焊接机器人与线激光视觉系统搭配的详细教程
人工智能·opencv·机器人
灏瀚星空1 小时前
高效图像处理工具:从需求分析到落地实现
图像处理·人工智能·经验分享·python·学习方法
安冬的码畜日常1 小时前
【AI 加持下的 Python 编程实战 2_02】第一章:利用 GitHub Copilot 叩开 AI 辅助编程的大门
人工智能·python·ai·copilot·ai助手·ai应用·ai辅助编程
Terrence Shen1 小时前
跟着AI复习一下pytorch原理和操作
人工智能·pytorch·python·深度学习·算法·机器学习
军训猫猫头1 小时前
80.Dictionary 字典 C#例子
开发语言·算法·c#
月落星还在2 小时前
AI学习——深度学习核心技术深度解析
人工智能·深度学习
Allen_LVyingbo2 小时前
历次科技泡沫对人工智能发展的启示与规避措施
人工智能·科技
码农幻想梦2 小时前
实验5 逻辑回归
算法·机器学习·逻辑回归