Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图像二值化-局部阈值方法汇总

图像二值化-局部阈值方法汇总

作者头像
OpenCV学堂
发布于 2018-04-04 02:56:00
发布于 2018-04-04 02:56:00
9.2K0
举报

概述:

图像处理中二值图像处理与分析是图像处理的重要分支,图像二值分割尤为重要,有时候基于全局阈值自动分割的方法并不能准确的将背景和对象二值化,这个时候就需要使用局部的二值化方法。常见的图像二值化局部自动阈值的方法有九种,在ImageJ的分支Fiji中已经全部实现,OpenCV中自适应阈值方法也实现了局部阈值的均值法与高斯均值法算法。对于二值图像常见的表示还可以1 - 表示对象,0-表示背景。

运行与各种方法介绍:

首先看一下ImageJ种九种二值化方法的运行演示:

原图

对应基于各种局部二值化方法运行结果:

Bernsen

实现了Bernsen算法,ImageJ中的代码实现是基于圆形的掩膜而不是标准算法中的矩形掩膜。最初输入的对比度阈值(Contrast Threshold)为T=15,第二个参数在ImageJ的代码实现中没有用到。对矩形或者圆形窗口内的所有像素值根据最大值与最小值得到局部对比度Local Contrast = (Max - Min)跟给定输入参数Contrast Threshold做如下比较:

这样就实现了每个像素点的二值化赋值,从而得到最终的二值图像。

Contrast

基于对比度二值化方法,根据局部像素块最大值与最小值决定中心像素是否设为对象像素或者背景像素。

Mean

均值法,选择的阈值是局部像素的灰度均值(gray mean),该方法的一个变种是用常量C减去均值Mean,然后根据均值实现如下操作:

其中默认情况下参数C取值为0。均值法在OpenCV中的局部阈值方法中有两种实现,一种是普通均值,另外一种是基于高斯的权重均值方法。

Median

中间值法,选择的阈值是局部范围内像素的灰度中值,同样该方法也可以使用常量C来进行阈值调节。实现的操作如下:

MidGrey

中值法,选择的是局部范围内像素的最大与最小值之和的一半作为阈值。同样可以通过常量C来调节阈值大小

NiBlack

计算局部范围内像素的均值与方差之后,根据如下公式计算阈值

其中K的默认取值为0.2,如果取-0.2将会得到比较暗的二值图像

Otsu

该方法前面有一篇文章已经专门见过,感兴趣读者可以自己搜索【OpenCV学堂】相关文章即可得到!这里不再重复。OpenCV中也有基于Otsu的全局阈值实现。看这里即可《二值化算法OTSU源码解析

Phansalkar

该方法对低对比度的图像实现二值化比较管用,计算阈值的公式如下:

其中mean表示局部均值,stdev表示方差。其它几个参数的默认取值如下:

k= 0.25,

r = 0.5,

p = 2,

q = 10.

Sauvola

该方法是NiBlack方法的一个变种,此方法中计算阈值的公式如下:

其中参数k的默认取值为0.5

相关源代码可以从下面的链接中获取

https://github.com/fiji/Auto_Threshold

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
图像二值化方法汇总介绍
ImageJ中图像二值化方法介绍 概述 二值图像分析在对象识别与模式匹配中有重要作用,同时也在机器人视觉中也是图像处理的关键步骤,选择不同图像二值化方法得到的结果也不尽相同。本文介绍超过十种以上的基于
OpenCV学堂
2018/04/04
4.7K1
图像二值化方法汇总介绍
Task05 图像分割/二值化
该部分的学习内容是对经典的阈值分割算法进行回顾,图像阈值化分割是一种传统的最常用的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域不具有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。
致Great
2020/05/06
1.3K0
OpenCV基础 | 11.图像二值化
学习视频可参见python+opencv3.3视频教学 基础入门[1] outline 图像二值化 二值图像 图像二值化方法 OpenCV相关API使用 图像二值化 1.二值图像 二值图像就是将灰度图转化成黑白图,没有灰,在一个值之前为黑,之后为白 2.二值化方法 全局阈值 对整幅图像都是用一个统一的阈值来进行二值化 局部阈值 像素的邻域块的像素值分布来确定该像素位置上的二值化阈值 3.OpenCV中图像二值化方法 二值化函数threshold 函数原型 关于常见的阈值使用方法如下表 OTSU(最大类间方差
快学Python
2021/08/09
8160
Python opencv图像处理基础总结(四) 模板匹配 图像二值化
模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。
叶庭云
2022/05/09
1.6K0
Python opencv图像处理基础总结(四) 模板匹配 图像二值化
【从零学习OpenCV 4】图像二值化
经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。
小白学视觉
2019/11/27
1K0
【从零学习OpenCV 4】图像二值化
Python opencv图像处理基础总结(四) 模板匹配 图像二值化
模板匹配是一种最原始、最基本的模式识别方法,研究某一特定对象物的图案位于图像的什么地方,进而识别对象物,这就是一个匹配问题。它是图像处理中最基本、最常用的匹配方法。模板匹配具有自身的局限性,主要表现在它只能进行平行移动,若原图像中的匹配目标发生旋转或大小变化,该算法无效。
叶庭云
2020/09/17
4.9K0
Python  opencv图像处理基础总结(四)  模板匹配  图像二值化
二值化算法OTSU源码解析
概述: 本文中小编将会跟大家分享一下OpenCV3.1.0中图像二值化算法OTSU的基本原理与源代码解析,最终还通过几行代码演示了一下如何使用OTSU算法API实现图像二值化。 一:基本原理 该方法是
OpenCV学堂
2018/04/04
2K0
二值化算法OTSU源码解析
一文搞懂图像二值化算法
传统的机器视觉通常包括两个步骤:预处理和物体检测。而沟通二者的桥梁则是图像分割(Image Segmentation)[1]。图像分割通过简化或改变图像的表示形式,使得图像更易于分析。
不脱发的程序猿
2021/05/08
3.4K0
一文搞懂图像二值化算法
Wellner 自适应阈值二值化算法
参考文档: Adaptive Thresholding for the DigitalDesk.pdf
用户1138785
2019/09/11
4.1K0
Wellner 自适应阈值二值化算法
opencv 5 -- 图像阈值
二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓
wust小吴
2019/07/08
8690
OpenCV与图像处理(十)
图像处理是利用计算机对图像进行去噪、增强、复原、重建、编码、压缩、几何变换、分割,提取特征等的理论、方法和技术。图像处理中,输入的是低质量的图像,输出的是改善质量后的图像。
Must
2020/07/27
1.4K0
有赞零售小票打印图片二值化方案
小票打印是零售商家的基础功能,在小票信息中,必然会存在一些相关店铺的信息。比如,logo 、店铺二维码等。对于商家来说,上传 logo 及店铺二维码时,基本都是彩图,但是小票打印机基本都是只支持黑白二值图打印。为了商家的服务体验,我们没有对商家上传的图片进行要求,商家可以根据实际情况上传自己的个性化图片,因此就需要我们对商家的图片进行二值图处理后进行打印。
有赞coder
2020/08/25
9270
有赞零售小票打印图片二值化方案
基于OpenCV的图像分割处理!
图像阈值化分割是一种传统的最常用的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。
Datawhale
2020/07/09
3.6K0
基于OpenCV的图像分割处理!
系列4 | CV领域入门,马上开始进阶咯
元宵节看样子快到了,才立春、才春节、才开工,不知不觉到了元宵,估摸着2019确实过得挺快的!
计算机视觉研究院
2019/03/07
4790
系列4 | CV领域入门,马上开始进阶咯
CV学习笔记(十二):二值化操作
图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。
云时之间
2020/03/19
9190
数字图像处理知识点总结概述
1.直方图:一幅图像由不同灰度值的像素组成,图像中灰度的分布情况是该图像的一个重要特征。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的频率。
小白学视觉
2022/09/28
1.9K0
OTSU (大津法)阈值选择算法
大津法(OTSU)是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用。它是按图像的灰度特性,将图像分成背景和前景两部分。因方差是灰度分布均匀性的一种度量,背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大,当部分前景错分为背景或部分背景错分为前景都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。
为为为什么
2022/08/09
3.7K0
OTSU (大津法)阈值选择算法
OpenCV-Python学习(10)—— OpenCV 图像二值化处理(cv.threshold)
1. 学习目标 理解图像的分类,不同类型的图像的区别; 对图像进行二值化处理,对【 cv.threshold 】函数的理解。 2. 图像分类 2.1 不同类型图像说明 按照颜色对图像进行分类,可以分为二值图像、灰度图像和彩色图像。 二值图像:只有黑色和白色两种颜色的图像。 每个像素点可以用 0/1 表示,0 表示黑色,1 表示白色。 灰度图像:只有灰度的图像。 每个像素点用 8bit 数字 [0,255] 表示灰度,如:0 表示纯黑,255 表示纯白。 彩色图像:彩色图像通常 采用红色(R)、绿色(
Rattenking
2022/10/24
3.5K0
OpenCV-Python学习(10)—— OpenCV 图像二值化处理(cv.threshold)
CV学习笔记(十二):二值化操作
图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。
云时之间
2020/03/06
1K0
没想到图像直方图有这么多应用场景
之前写过很多图像直方图相关的知识跟OpenCV程序演示,这篇算是把之前的都回顾一波。做好自己的知识梳理。
OpenCV学堂
2020/02/21
1.9K0
相关推荐
图像二值化方法汇总介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档