自适应阈值参数混淆

时间:2015-02-27 10:57:00

标签: python opencv

任何人都可以告诉我这些自适应阈值功能中的参数是什么,以及它们如何控制黑白像素。

cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,\
            cv2.THRESH_BINARY,11,2)
th3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
            cv2.THRESH_BINARY,11,2)

2 个答案:

答案 0 :(得分:15)

Python: cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst]) → dst

参数:

src – Source 8-bit single-channel image.
dst – Destination image of the same size and the same type as src .
maxValue – Non-zero value assigned to the pixels for which the condition is satisfied. See the details below.
adaptiveMethod – Adaptive thresholding algorithm to use, ADAPTIVE_THRESH_MEAN_C or ADAPTIVE_THRESH_GAUSSIAN_C . See the details below.
thresholdType – Thresholding type that must be either THRESH_BINARY or THRESH_BINARY_INV .
blockSize – Size of a pixel neighborhood that is used to calculate a threshold value for the pixel: 3, 5, 7, and so on.
C – Constant subtracted from the mean or weighted mean (see the details below). Normally, it is positive but may be zero or negative as well.

取自here:,它还详细解释了该方法。

答案 1 :(得分:3)

添加到GPPK的答案。

该功能根据公式将灰度图像转换为二进制图像:

  • THRESH_BINARY

enter image description here

  • THRESH_BINARY_INV

enter image description here

其中T(x,y)是为每个像素单独计算的阈值。

  • 对于方法ADAPTIVE_THRESH_MEAN_C,阈值T(x,y)是(x,y)减去C的blockSize x blockSize邻域的平均值。
  • 对于方法ADAPTIVE_THRESH_GAUSSIAN_C,阈值T(x,y)是(x,y)减去C的blockSize x blockSize邻域的加权和(与高斯窗口的互相关)。默认的sigma(标准差)用于指定的blockSize。