Maryam Tahir
Maryam Tahir

Reputation: 273

Adaptive Threshold parameters confusion

Can anyone please tell me what are the parameters in these Adaptive Threshold functions and how are they controlling black and white pixels.

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)

Upvotes: 21

Views: 33718

Answers (2)

meelo
meelo

Reputation: 582

Add to the answer from GPPK.

The function transforms a grayscale image to a binary image according to the formulae:

  • THRESH_BINARY

enter image description here

  • THRESH_BINARY_INV

enter image description here

where T(x,y) is a threshold calculated individually for each pixel.

  • For the method ADAPTIVE_THRESH_MEAN_C , the threshold value T(x,y) is a mean of the blockSize x blockSize neighborhood of (x, y) minus C .
  • For the method ADAPTIVE_THRESH_GAUSSIAN_C , the threshold value T(x, y) is a weighted sum (cross-correlation with a Gaussian window) of the blockSize x blockSize neighborhood of (x, y) minus C . The default sigma (standard deviation) is used for the specified blockSize .

Upvotes: 4

GPPK
GPPK

Reputation: 6666

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

Parameters:

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.

Taken from here: and it also explains the method in a lot more detail.

Upvotes: 23

Related Questions