📜  魔杖adaptive_threshold()函数Python(1)

📅  最后修改于: 2023-12-03 15:42:33.724000             🧑  作者: Mango

魔杖adaptive_threshold()函数Python介绍

魔杖adaptive_threshold()函数是一个用于图像二值化处理的函数,主要作用是将一张灰度图像转换为黑白二值图像。该函数采用的是局部自适应阈值算法,在不同的区域内采用不同的阈值进行二值化处理。

函数参数

函数的参数如下所示:

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

参数说明:

  • src:输入的灰度图像,类型为单通道8位或32位浮点型。
  • maxValue:输出二值图像中的最大值,通常为255。
  • adaptiveMethod:自适应阈值算法的类型,有两种可供选择:
    • cv2.ADAPTIVE_THRESH_MEAN_C:采用平均值作为阈值。
    • cv2.ADAPTIVE_THRESH_GAUSSIAN_C:采用高斯加权平均值作为阈值。
  • thresholdType:阈值类型,有两种可供选择:
    • cv2.THRESH_BINARY:超过阈值部分取maxValue,否则取0。
    • cv2.THRESH_BINARY_INV:超过阈值部分取0,否则取maxValue。
  • blockSize:局部块的大小,必须是奇数。
  • C:减去阈值的常数,防止阈值太小或太大而导致过度二值化。
函数返回值

该函数的返回值为输出的目标图像,通常为二值图像。

使用示例

下面是一个使用魔杖adaptive_threshold()函数进行图像二值化处理的示例代码:

import cv2

img = cv2.imread('test.jpg', 0)
dst = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
cv2.imshow('dst', dst)
cv2.waitKey(0)

该示例代码中,首先使用cv2.imread()函数读取一张灰度图像,然后调用cv2.adaptiveThreshold()函数进行二值化处理。在本例子中,我们采用平均值作为阈值,局部块大小为11x11,减去阈值的常数为2。最后,使用cv2.imshow()函数显示输出的目标图像,并等待用户按下任意键退出程序。

注意事项
  • 局部块的大小必须是奇数。
  • 该函数仅适用于单通道的灰度图像,如果需要处理彩色图像,需要先将图像转换为灰度图像。
  • 在不同的阈值和局部块大小的选择上,需要根据实际应用场景进行调整和测试。