阈值分割法——最佳阈值的选择问题
阈值分割法可以说是图像分割中的经典方法,它利用图像中要提取的目标与背景在灰度上的差异,通过设置阈值来把像素级分成若干类,从而实现目标与背景的分离。
一般流程:通过判断图像中每一个像素点的特征属性是否满足阈值的要求,来确定图像中的该像素点是属于目标区域还是背景区域,从而将一幅灰度图像转换成二值图像。
用数学表达式来表示,则可设原始图像f(x,y),T为阈值,分割图像时则满足下式:
阈值分割法计算简单,而且总能用封闭且连通的边界定义不交叠的区域,对目标与背景有较强对比的图像可以得到较好的分割效果。但是,关键问题来了,如何获得一个最优阈值呢?????
以下是几种最优阈值的选择方法:
(1)人工经验选择法:
也就是我们自己根据需要处理的图像的先验知识,对图像中的目标与背景进行分析。通过对像素的判断,图像的分析,选择出阈值值所在的区间,并通过实验进行对比,最后选择出比较好的阈值。这种方法虽然能用,但是效率较低且不能实现自动的阈值选取。对于样本图片较少时,可以选用。
(2)利用直方图
利用直方图进行分析,并根据直方图的波峰和波谷之间的关系,选择出一个较好的阈值。这样方法,准确性较高,但是只对于存在一个目标和一个背景的,且两者对比明显的图像,且直方图是双峰的那种最有价值。
(3)最大类间方差法(OTSU)
OTSU是一种使用最大类间方差的自动确定阈值的方法。是一种基于全局的二值化算法,它是根据图像的灰度特性,将图像分为前景和背景两个部分。当取最佳阈值时,两部分之间的差别应该是最大的,在OTSU算法中所采用的衡量差别的标准就是较为常见的最大类间方差。前景和背景之间的类间方差如果越大,就说明构成图像的两个部分之间的差别越大,当部分目标被错分为背景或部分背景被错分为目标,都会导致两部分差别变小,当所取阈值的分割使类间方差最大时就意味着错分概率最小。
记T为前景与背景的分割阈值,前景点数占图像比例为w0,平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1,图像的总平均灰度为u,前景和背景图象的方差g,则有:
联立上式得:
或:
当方差g最大时,可以认为此时前景和背景差异最大,此时的灰度T是最佳阈值。类间方差法对噪声以及目标大小十分敏感,它仅对类间方差为单峰的图像产生较好的分割效果。当目标与背景的大小比例悬殊时(例如受光照不均、反光或背景复杂等因素影响),类间方差准则函数可能呈现双峰或多峰,此时效果不好。
(4)自适应阈值法:
上面的最大类间方差阈值分割法在分割过程中对图像上的每个像素都使用了相等的阈值。但在实际情况中,当照明不均匀、有突发噪声或者背景变化较大时,整幅图像分割时将没有合适的单一阈值,如果仍采用单一的阈值去处理每一个像素,可能会将目标和背景区域错误划分。而自适应阈值分割的思想,将图像中每个像素设置可能不一样的阈值。
基本原理:
一种较为简单的自适应阈值选取方法是对每个像素确定以其自身为中心的一个领域窗口,寻找窗口内像素的最大值与最小值,并取二者的平均值作为阈值,或者将窗口内所有像素的平均值作为阈值,亦或者将窗口内的所有像素的高斯卷积作为阈值。
。你发大时,可以认为此时前景和背景差异最大,此时的灰度T是最佳阈值。类间方差法对噪声以及目标大小十分敏感,它仅对类间方差为单峰的图像产生较好的分割效果。当目标与背景的大小比例悬殊时(例如受光照不均、反光或背景复杂等因素影响),类间方差准则函数可能呈现双峰或多峰,此时效果)自适应阈值法
阈值分割法——最佳阈值的选择问题相关推荐
- 交叉熵图像分割matlab,灰度图像的二维交叉熵阈值分割法
[1]SAHOO P K,SOLTANIS,WONG A K C,et al.A survey of thresholding techniques[J].Computer Vision,Graphi ...
- 图像阈值分割matlab,图像阈值分割Matlab版 | 学步园
图像阈值分割是一个非常简单的 而现在遇到的阈值分割却需要完成如下的多个功能: 1.基本的阈值分割: 大于阈值,则认为是目标:小于,则认为是背景 2.像素值较低才被认为是目标,即要把不等号反向 对图像像 ...
- 图像处理算法2——Otsu最佳阈值分割法
Otsu法是1979年由日本大津提出的.该方法在类间方差最大的情况下是最佳的,即统计鉴别分析中所用的度量.Otsu方法有一个重要的特性,就是它完全以在一幅图像的直方图上执行计算为基础,而直方图是很容易 ...
- 【机器视觉学习笔记】大津法/Otsu最大类间方差法 最佳阈值处理(C++)
目录 概念 C++源码 OtsuThreshold 主函数 效果 完整源码 平台:Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文所用源码修改自C+ ...
- 【MATLAB教程案例23】基于MATLAB图像分割算法仿真——阈值分割法、Otsu阈值分割法、K均值聚类分割法等
FPGA教程目录 MATLAB教程目录 目录 1.软件版本 2.通过二值图实现图像分割 3.通过Otsu阈值分割实现图像分割
- 最大熵阈值python_【6】python-opencv3教程:阈值分割(全阈值分割,局部阈值分割,直方图技术法,熵算法,自适应算法,Otsu算法)...
第六节:阈值分割 一: 全阈值分割 实例代码: image = cv2.imread('img.jpg', cv2.IMREAD_GRAYSCALE) the = 100 # 设置阈值为100 max ...
- c语言实现灰度图像阈值分割,灰度图像--图像分割 阈值处理之平均阈值
学习DIP第52天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://gi ...
- python阈值分割_根据阈值分割numpy数组的更快方法
X[~Z]比X[Z==0]快:In [13]: import numpy as np In [14]: X = np.random.random_integers(0, 1000, size=1000 ...
- 利用最大熵进行阈值分割从而实现灰度图像的二值化的原理概要及OpenCV代码
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 详细的数学原理目前我也没搞明白,所以只说下原理概 ...
- 图像二值化方法及适用场景分析(OTSU Trangle 自适应阈值分割)
图像二值化 应用场景 二值图像定义 阈值获取的方法 手动阈值法 自动阈值法 灰度均值法 基于直方图均值法 OTSU Triangle 自适应均值阈值分割方法 总结 参考文献 应用场景 二值图像处理与分 ...
最新文章
- 游戏风格化角色创建入门指南视频教程
- Hibernate学习5—Hibernate操作对象
- oracle中primary,oracle中如何 Primary key自增
- activiti 工作流 动态 设置 指定 节点任务人、责任人、组 的实现方式
- 计算机视觉(一)概述
- php重复点击按钮无效,完美解决UIButton按钮重复点击、多次响应的问题
- Node.js初探之hello world
- 60页论文综述深度学习优化方法,出自UIUC
- 效仿盖茨:PPstream创始人的心路历程
- CommVault徐永兴谈软件架构决定服务优势
- 解决磁盘IO紧张的一种方法
- iOS下浏览器document/body的click事件无效的坑
- 判断iOS机器是否支持TouchId, FaceId
- 数据库系统概述之数据库的安全性
- 简单好用的Mac截图工具:FinalShot
- python 开发管理软件 ERP
- 周期性的方波 matlab,matlab产生方波脉冲和周期性方波信号 - 副本
- 【设计模式】简单工厂模式+工厂方法模式+抽象工厂模式
- 【web前端】小人行走
- 中文汉字翻译为相应的拼音