opencv二值化自适应滤值
时间: 2023-09-18 12:07:20 浏览: 82
OpenCV 中提供了自适应二值化函数 `cv2.adaptiveThreshold()`,可以根据图像局部区域内的像素值进行二值化处理。该函数需要指定以下参数:
- `src`:输入图像,必须为灰度图像。
- `maxval`:当像素值超过阈值时,赋予的最大值。
- `adaptiveMethod`:自适应阈值算法。可选值有 `cv2.ADAPTIVE_THRESH_MEAN_C` 和 `cv2.ADAPTIVE_THRESH_GAUSSIAN_C`。
- `thresholdType`:二值化类型,可选值有 `cv2.THRESH_BINARY` 和 `cv2.THRESH_BINARY_INV`。
- `blockSize`:局部区域大小,必须为奇数。
- `C`:从平均值或加权平均值中减去的常数,用于计算阈值。
下面是一个示例代码:
```python
import cv2
img = cv2.imread('test.jpg', 0)
img = cv2.medianBlur(img, 5) # 中值滤波
img_thres = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
cv2.imshow('Thresholded Image', img_thres)
cv2.waitKey(0)
```
在上述代码中,我们首先读取了一张灰度图像 `test.jpg`,接着进行了中值滤波。然后,我们使用 `cv2.adaptiveThreshold()` 函数进行自适应二值化,其中 `adaptiveMethod` 参数为 `cv2.ADAPTIVE_THRESH_MEAN_C`,`thresholdType` 参数为 `cv2.THRESH_BINARY`,`blockSize` 参数为 11,`C` 参数为 2。最后,我们显示了二值化后的图像。
阅读全文