opencv自适应阈值二值化
时间: 2023-09-08 16:14:39 浏览: 93
OpenCV中的自适应阈值二值化函数是`cv2.adaptiveThreshold()`,该函数可以根据图像的局部区域确定阈值,而不是像简单阈值二值化那样使用全局阈值。该函数的语法如下:
```
cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst]) → dst
```
其中,参数`src`是输入图像,必须为灰度图像;`maxValue`是二值化后的最大值;`adaptiveMethod`是自适应阈值算法,可以选择`cv2.ADAPTIVE_THRESH_MEAN_C`或`cv2.ADAPTIVE_THRESH_GAUSSIAN_C`;`thresholdType`是阈值类型,可以选择`cv2.THRESH_BINARY`或`cv2.THRESH_BINARY_INV`;`blockSize`是每个局部区域的大小,必须为奇数;`C`是从平均值或加权平均值中减去的常数,通常为0。如果指定了可选参数`dst`,则函数将结果存储在其中,否则将返回结果。
下面是一个示例代码:
```python
import cv2
img = cv2.imread('image.png', 0)
dst = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)
cv2.imshow('adaptive threshold', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们将一张灰度图像`image.png`读入内存,并使用高斯自适应阈值算法进行阈值二值化。每个局部区域的大小为11,并且从加权平均值中减去了2。最后,我们将结果显示在屏幕上。
阅读全文