前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图像二值化-局部阈值方法汇总

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

作者头像
OpenCV学堂
发布2018-04-04 10:56:00
7.8K0
发布2018-04-04 10:56:00
举报

概述:

在图像处理中二值图像处理与分析是图像处理的重要分支,图像二值分割尤为重要,有时候基于全局阈值自动分割的方法并不能准确的将背景和对象二值化,这个时候就需要使用局部的二值化方法。常见的图像二值化局部自动阈值的方法有九种,在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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档