python图像0,1二值化
时间: 2024-02-19 20:03:20 浏览: 126
将图像像素值二值化为0和1,可以将所有灰度值高于阈值设为1,低于阈值设为0。可以使用全局固定阈值的方法或者局部自适应阈值的方法来实现。
以下是使用全局固定阈值的方法:
```python
import cv2
# 读取灰度图像
img = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE)
# 应用全局固定阈值二值化
thresh, binary_img = cv2.threshold(img, 127, 1, cv2.THRESH_BINARY)
# 显示二值化后的图像
cv2.imshow('binary image', binary_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.threshold`函数的第三个参数设为1,即将高于阈值的像素值设为1。
以下是使用局部自适应阈值的方法:
```python
import cv2
# 读取灰度图像
img = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE)
# 应用局部自适应阈值二值化
binary_img = cv2.adaptiveThreshold(img, 1, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
# 显示二值化后的图像
cv2.imshow('binary image', binary_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`cv2.adaptiveThreshold`函数用于应用局部自适应阈值二值化,参数`1`表示高于阈值的像素值要设置的值,`cv2.ADAPTIVE_THRESH_MEAN_C`表示使用局部像素均值作为阈值计算方法,`cv2.THRESH_BINARY`表示二值化方法,`11`表示局部块大小,`2`表示从块大小中减去的常数。
阅读全文