cv2.adaptiveThreshold 代码
时间: 2024-10-07 14:02:04 浏览: 41
在OpenCV中,`cv2.adaptiveThreshold()`函数用于将灰度图像转换为二值图像,通过自适应地调整阈值,能更好地适应不同区域的对比度。基本用法如下:
```python
import cv2
import numpy as np
# 读取灰度图像
gray_image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 定义参数
block_size = 11 # 滤波器大小,较大的值会使结果更粗糙
c = 2 # 连通组件合并因子,大于1时会产生更大区域的黑块
method = cv2.ADAPTIVE_THRESH_MEAN_C # 可选的阈值计算方法:均值(cv2.ADAPTIVE_THRESH_MEAN_C)、最大(cv2.ADAPTIVE_THRESH_GAUSSIAN_C)
# 自适应阈值处理
binary_image = cv2.adaptiveThreshold(gray_image, 255, method, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU, block_size, c)
# 显示原图和处理后的图
cv2.imshow("Original Gray Image", gray_image)
cv2.imshow("Adaptive Thresholded Image", binary_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先加载一个灰度图像,然后设定滤波器大小、合并因子和阈值计算方法。`cv2.adaptiveThreshold()`计算每个像素点基于周围像素值的统计量(如平均值或最大值),并应用自适应阈值来确定该像素是否为黑色或白色。`THRESH_BINARY_INV + cv2.THRESH_OTSU`组合表示先按Otsu's算法自动选择最佳二值化阈值,再进行反向二值化操作。
阅读全文