java 求集合平均数_图像二值化方法介绍(转载学习)

ImageJ中图像二值化方法介绍

概述

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

ImageJ演示

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

a8933d51daea4c9c2cfe3a7c530c3ddf.png

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

e5cae4f96dd9598f35cd76742a25308a.png

迭代方法:

默认方式是通过迭代方法来求取阈值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熵计算公式取代广义熵值公式。

33eabf8e74e88ca0cf3649f124f92288.png

最大熵值为:

7eddc34fe8001460432627d2d85fb6c4.png

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

Shanbhag(阈值分割)

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

Triangle(三角阈值分割)

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

5967b9bcec667200947a4177f5abeba2.png

Yen(阈值分割)

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

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

https://github.com/fiji/Auto_Threshold

本篇文章转载自http://www.onesheng.cn/chfa/fangan/251076.html,如有侵权,请告知删除。

打开App,阅读手记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
敬告:该系列的课程在抓紧录制更新中,敬请大家关注。敬告: 该系列的课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,OpenCV,等。包括:音视频、流媒体、直播、Android、视频监控28181、等。 我将带领大家一起来学习OpenCV4的图像处理原理和编程知识,并动手操练58案例代码。具体内容包括: 一、小白入门与初体验:禁果尝鲜二、图像基本操作:懵懵懂懂学图像三、图像统计操作:七七八八有收获四、图像卷积:不入虎穴焉得虎子五、磨皮美颜:柳暗花明又一村六、二图像:阴阳合一法自然七、图像形态学:登高望远天地阔 音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学 基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢? 因为没有学习音视频和流媒体的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、流媒体直播、视频监控、等等。 梅老师从事音视频与流媒体行业18年;曾在永新视博、中科大洋、百度、美国Harris广播事业部等公司就职,经验丰富;曾亲手主导广电直播全套项目,精通h.264/h.265/aac,曾亲自参与百度app上的网页播放器等实战产品。目前全身心自主创业,主要聚焦音视频+流媒体行业,精通音视频加密、流媒体在线转码快编等热门产品。     

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值