带有 mask 的 OTSU 自适应阈值

上一篇 图像二值化方法--OTSU(最大类间方差法) 留下一个问题:使用库函数 

threshold(src, dst, thresh, maxVal, CV_THRESH_OTSU)
来计算阈值,冒出了一个不合群的阈值,原因未知。

分析灰度图,发现光照亮度不均,中间较亮,四周较暗(进行直方图均衡化后更直观)。想把四周较暗的区域作为模板,计算该区域的OTSU阈值,作为整个图像的分割阈值。即把较暗区域的像素点和黑色目标区域的像素点作为对象求其OTSU阈值,这样计算出来的阈值更低。因此,就需要一个带 mask 的计算OTSU阈值的函数。这个想法是学习了以下内容后产生的,该作者改写了原函数。(第一次看到改写原函数,十分感谢原文作者)

opencv threshold with mask

thresh = getThreshVal_Otsu_8u(src); 该函数源码在  opencv\sources\modules\imgproc\src\thresh.cpp 中,文章开头的链接中也贴出了。

改写后的函数:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值