据我了解,在自适应阈值处理中,当我们使用cv.ADAPTIVE_THRESH_MEAN_C
时,它将计算块中像素值的平均值,即阈值;而当我们使用cv.ADAPTIVE_THRESH_GAUSSIAN_C
时,则是加权平均值计算。但是,如何查看或更改用于计算加权平均值的权重?
答案 0 :(得分:0)
您可以使用cv2.getGaussianKernel()
查看分配给您功能的权重。
`cv2.get GaussianKernel()接受3个参数:
float32
或float64
)此方法的详细信息在this page上
示例:
将以下内容设为cv2.adaptiveThreshold()
的设置:
th3 = cv2.adaptiveThreshold(img,255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,\
cv.THRESH_BINARY,11,2)
这里的内核大小为11。您可以按照上述方法获得相应的权重:
cv2.getGaussianKernel(11, 2)
返回一个数组,该数组的中心位置具有最高值:
array([[ 0.00881223],
[ 0.02714358],
[ 0.06511406],
[ 0.12164907],
[ 0.17699836],
[ 0.20056541],
[ 0.17699836],
[ 0.12164907],
[ 0.06511406],
[ 0.02714358],
[ 0.00881223]])
可以通过更改 sigma 值来更改权重,该值是cv2.getGaussianKernel()
中的第二个参数:
cv2.getGaussianKernel(11, 3)
返回以下权重:
array([[ 0.03548293],
[ 0.05850147],
[ 0.08630959],
[ 0.1139453 ],
[ 0.13461047],
[ 0.14230046],
[ 0.13461047],
[ 0.1139453 ],
[ 0.08630959],
[ 0.05850147],
[ 0.03548293]])