【综述】16种图像二值化方法汇总介绍

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

be79b5f8d3134315de14a06737c166d2.jpeg

ImageJ中图像二值化方法介绍

概述

二值图像分析在对象识别与模式匹配中有重要作用,同时也在机器人视觉中也是图像处理的关键步骤,选择不同图像二值化方法得到的结果也不尽相同。本文介绍超过十种以上的基于全局阈值的图像二值化方法,其中最大值为255表示白色, 0 表示黑色,H表示图像直方图。imageJ重要开源分支Fiji中已经实现了全局自动阈值16种方法。

ImageJ演示

首先来看一下原图,是一张人体细胞组织的图像,显示如下:

a942cc631f791e1df44d34ba172098c3.png

各种二值化方法生成的对应的二值图像图像显示如下:

95acf00329587016a563f9bb69103699.jpeg

迭代方法:

默认方式是通过迭代方法来求取阈值T,通过假设阈值T来分割图像为两部分,对各个部分求取均值M1与M2假设T' = (M1+M2) 不等于T则令T= T'然后继续迭代直到两者相等。

Huang阈值分割法:

方法来自于Huang L-K & Wang M-JJ模式识别论文《ImageThresholding By minimizing the measure of fuzziness》具体可以自己看论文。

InterModes阈值分割:

该方法假设直方图是一个双峰模式的直方图,对直方图使用平滑滤波迭代多次,知道只剩下两个最大的峰J与K则阈值为T=(J+K)/2, 如果图像形成直方图只会有一个单峰或者有大片平坦区域的时候,该方法不太适合。 

IsoData阈值分割:

该方法基于Ridler, TW&Calvard的论文《Picture thresholding using an iterative selection method》该方法通过给定一个随机阈值假设127把图像分为对象与背景进行分割,计算两部分的均值,不断迭代,直到阈值大于复合均值为止。最终阈值为:阈值 = (背景像素均值+对象像素均值)/2。感兴趣可以自己看Paper。 

Li阈值分割:

基于Li的最小交叉熵阈值迭代方法,感兴趣者可以看论文《Minimum CrossEntropy Thresholding》了解更多细节。 

MaxEntropy(最大熵值分割):

基于Kapur-Sahoo-Wong的《Maximum Entropy thresholdingmethod》方法实现该算法,ImageJ Fiji中已经实现。 

均值方法分割:

使用灰度图像计算所有像素值的均值作为阈值实现图像二值化分割方法。

MinError(最小错误):

迭代算法基于Kittler与Illingworth的最小错误阈值分割方法,初始开始迭代的阈值为均值。除了ImageJ中已有实现,此方法在MATLAB中也有实现。 

Minimum(最小阈值):

该方法类似于中间帧模式(InterModes),都是假设直方图有两个波峰,通过均值平滑滤波最终得到两个本地最大的波峰,阈值等于yt-1>yt<=yt+1。该方法主要用于细胞图像分析,相关论文见《TheAnalysis of cell images》。MATLAB中同样也实现了该方法。 

Moments(几何矩阈值):

该方法是根据Tsai.W的论文《Moment-preserving thresholding: anew approach》 

Otsu阈值

Otsu主要是图像直方图进行阈值分类,从0~255之间,然后求它们的最小内方差对应直方图灰度索引值作为阈值实现图像二值化,OpenCV中已经实现,而且是OpenCV2.x全局阈值二值化方法。 

Percentile阈值

该方法假设前景像素ptile=0.5,然后对直方图按照灰度强度从0~255作为每个阈值分割通过迭代寻找最小比重值,最终得到阈值T。

RenyiEntropy(雷尼熵阈值分割)

跟最大熵值方法类似,唯一不同是用Renyi熵计算公式取代广义熵值公式。

ae99c36660a6c5dadad73e81d3866224.png

最大熵值为:

76d868c7299c0da107f904b8e006c6b1.png

其中q取值不同决定阈值不同。通常q取1或者2。

Shanbhag(阈值分割)

该方法同样是基于直方图熵值实现的阈值分割方法。具体可以参考《Utilization of information measure as a means of image thresholding》了解原理。

Triangle(三角阈值分割)

该方法是假设直方图只有一个波峰(单峰直方图)使用如下方法求得最大距离对应的直方图灰度值即为阈值。OpenCV在其3.x版本中已经实现该方法。

a332f3de4dc07422af059c9fbd5927f0.png

Yen(阈值分割)

该方法是基于直方图数据的最大相关条件实现的二值图像分割方法。 

16种方法Java源代码实现下载地址:

https://github.com/fiji/Auto_Threshold

 
 

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇

 
 

a38af84ae415a6e42ca21b445c64f7bd.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值