用于光照不均匀图片阈值化的Bernsen算法的OpenCV实现

本文介绍了Bernsen算法的基本思想,该算法通过计算以像素为中心的窗口内最大值和最小值的均值来设定阈值。当最大值和最小值差值大于特定阈值S时,当前像素阈值为该均值。若差值小于等于S,根据阈值T与预设值Th比较决定像素的黑白。在实际应用中,由于其较高的时间复杂度,通常会采用改进版的Bernsen算法。展示的实验结果表明,尽管原始算法时间消耗大,但效果尚可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bernsen算法的中心思想:

设当前像素为P,计算以P为中心的大小为(2k+1)*(2k+1)窗口内的所有像素的最大值Max与最小值Min,两者的均值T,

伪代码如下:

    if(Max-Min)> S

        则当前点P的阈值为T。

    else

        当前窗口所在区域的灰度级差别较小,那么窗口在目标区或在背景区,若T>Th则当前点灰度值为255,否则,当前点灰度值为0.

S和Th可以根据需要进行调整,本文中将S最初设为15, Th设为128。

//Bernsen算法
void Bernsen(const cv::Mat &src,cv::Mat &dst,int blockSize,int Th,int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值