在遵循本指南并使用自适应阈值函数时,我对调整blocksize
和C
以找到理想值的直觉感到困惑。
当调整这些参数而不是进行完全随机的猜测和检查过程时,应该采取什么方法?有没有更好的技术可以基于图像的颜色历史程序来学习这些参数?
cv2.adaptiveThreshold(img, maxValue, adaptiveMethod, thresholdType, blockSize, C)
块大小的选择应确保块始终能看到前景和背景。如果块太小,完全位于前景或背景内部的块将看不到该区域的实际对比度,它将只看到噪声。因此,对于该块,阈值化的结果将不会分离背景和前景,而是分离单个相位内的噪声。
如果每个块都看到大量的两个相位,则阈值C
可以是零。
如果不能将块大小选择得足够大,并且某些块只能看到背景,则可以将C
值设置得足够大以使这些块只产生背景。背景中噪声的标准偏差的两倍是一个良好的开始值。
同样,如果是前景相位较大,则将C
设置为负值,以使完全在前景中的块仅产生前景。