调整自适应阈值参数背后的直觉

Intuition behind adjusting adaptive thresholding parameters

在使用 this guide and using the adaptive thresholding 函数时,我对调整 blocksizeC 以找到理想值的直觉感到困惑。

在调整这些参数时应该采取什么方法而不是进行完全随机的猜测和检查过程?是否有更好的技术可以根据图像的颜色直方图学习这些参数?

cv2.adaptiveThreshold(img, maxValue, adaptiveMethod, thresholdType, blockSize, C)

应选择块大小,使块始终同时看到前景和背景。如果块太小,完全在前景或背景内部的块将看不到该区域的实际对比度,只会看到噪声。因此,对于该块,阈值化结果不会分离背景和前景,而是单相内的噪声。

如果每个块都看到大量的两个阶段,则阈值 C 可以为零。

如果不能选择足够大的块大小,并且某些块只能看到背景,则可以将 C 值设置得足够大以使这些块只产生背景。背景噪声标准差的两倍是一个很好的起始值。

同样,如果是前景相位较大,则将C设置为负值,使完全在前景中的块只产生前景。