python阈值计算_基于Python的阈值分割算法实现(二)

本文介绍了Python中四种图像阈值分割算法的实现,包括三角阈值分割法、Riddler-Calvard分割法、自适应局部均值分割法和自适应局部高斯分割法。提供了代码示例,特别是如何处理遥感图像的阈值分割,并展示了不同算法的分割结果,全局阈值分割方法如三角法通常能提供较好的效果。
摘要由CSDN通过智能技术生成

引言

前文我们讨论了关于实现OTSU算法的问题,该算法主要是针对于特征值阈值的确定,这个值可以用于论文讨论和说明。但实际情况中,我们需要对图像进行各种滤波,预处理,那么此时我们可能需要一种带坐标和投影的分割结果,本文就将带大家实现对图像进行阈值分割后进行结果的输出。

本文代码共包含了四种不同的分割算法,分别是三角阈值分割法、Riddler-Calvard分割法、自适应局部均值分割法、自适应局部高斯分割法,前两种为全局性的算法,在Python的封装函数中即可输出阈值又可输出图像,后两种为局部性分割算法,在Python的封装函数中只能输出图像。另外,本问在使用Riddler-Calvard分割法时,引用了mahotas库,由于内网下载比较慢,在这里上传为附件给大家使用(大家按照自己的环境自取)。

安装的时候注意安装到自己的开发环境,必须激活环境之后才能使用 pip install 命令

mahotas-1.4.9-cp37-cp37m-win_amd64.whl

1.7M ·

百度网盘

主要方法原理

1.三角阈值分割法

三角法求阈值最早见于Zack的论文《Automatic measurement of sister chromatid exchange frequency》主要是用于染色体的研究,该方法是使用直方图数据,基于纯几何方法来寻找最佳阈值,它的成立条件是假设直方图最大波峰在靠近最亮的一侧,然后通过三角形求得最大直线距离,根据最大直线距离对应的直方图灰度等级即为分割阈值,图示如下:在直方图上从最高峰处bmx到最暗对应直方图bmin(p=0)%构造一条直线,从bmin处开始计算每个对应的直方图b到直线的垂直距离,知道bmax为止,其中最大距离对应的直方图位置即为图像二值化对应的阈值T有时候最大波峰对应位置不在直方图最亮一侧,而在暗的一侧,这样就需要翻转直方图,翻转之后求得值,用255减去即得到为阈值T

2.Riddler-Calvard分割法

Riddler-Calvard跟OTSU与Triangle一样都是基于直方图计算得到阈值的二值化分割算法,唯一个不同的是Riddler-Calvard是基于迭代查找实现,它的算法步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值