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

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

534

被折叠的 条评论
为什么被折叠?



