基于阈值的图像分割 ⚫ 基于 OpenCV 实现几种典型的阈值分割方法,包括:全局阈值分割(可 参考 cv.threshold)、局部自适应阈值分割
时间: 2024-05-13 15:14:52 浏览: 96
(可参考 cv.adaptiveThreshold)、Otsu 阈 值分割(可参考 cv.threshold)等。在实现过程中,需要先读入一张灰度图像, 然后对其进行阈值分割。最后将原图和分割结果显示出来,方便观察和比较。
下面是一个基于 OpenCV 实现全局阈值分割的示例代码:
```python
import cv2
# 读入灰度图像
img = cv2.imread('image.jpg', 0)
# 全局阈值分割
ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
# 显示原图和分割结果
cv2.imshow('Original', img)
cv2.imshow('Thresholded', thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,cv2.threshold 函数的参数含义如下:
- 第一个参数为输入图像,必须为灰度图像。
- 第二个参数为阈值,用于将图像分为两部分。
- 第三个参数为最大值,用于表示分割后的目标像素值。
- 第四个参数为分割方法,可选项包括 cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、 cv2.THRESH_TRUNC、cv2.THRESH_TOZERO 和 cv2.THRESH_TOZERO_INV。
局部自适应阈值分割和 Otsu 阈值分割的实现方式类似,只需将 cv2.threshold 函数改为 cv2.adaptiveThreshold 和 cv2.threshold 函数的 cv2.THRESH_OTSU 参数即可。