OpenCV 自适应阈值化处理 - cv2.adaptiveThreshold 函数详解
cv2.adaptiveThreshold 是 OpenCV 中的一个函数,用于对图像进行自适应阈值化处理。该函数可以自动确定每个像素的阈值,以便更好地分离前景和背景。
函数的输入参数包括:
-
src:需要进行阈值化的原始图像,要求为单通道灰度图像。
-
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:常数值,用于调整阈值。阈值 T 的计算公式为:
T = mean(x) - C
或
T = gaussian(x) - C
其中,x 为邻域像素值,mean(x) 和 gaussian(x) 分别为邻域均值和邻域加权均值。
-
dst:输出结果图像。
示例代码:
import cv2
img = cv2.imread('test.png', 0)
# 自适应阈值化处理
dst = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 11, 2)
cv2.imshow('src', img)
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
原文地址: https://www.cveoy.top/t/topic/nuht 著作权归作者所有。请勿转载和采集!