python实现图像二值化
时间: 2023-12-04 15:55:42 浏览: 87
图像二值化是将一幅灰度图像转换为只有两种颜色的图像,一般是黑色和白色。Python提供了许多库和方法来实现图像二值化,本文介绍常用的两种方法。
方法一:手动实现
手动实现二值化,即遍历图像的每一个像素点,根据其灰度值与阈值的大小关系,将其设为黑色或白色。
代码如下:
```python
import cv2
img = cv2.imread('image.jpg', 0) # 以灰度模式读取图片
threshold = 127 # 阈值
# 遍历每个像素点
for i in range(img.shape[0]):
for j in range(img.shape[1]):
if img[i, j] > threshold:
img[i, j] = 255 # 白色
else:
img[i, j] = 0 # 黑色
cv2.imwrite('binary_image.jpg', img) # 保存二值化后的图像
```
方法二:OpenCV库实现
OpenCV是一个开源的计算机视觉库,提供了许多图像处理和计算机视觉方面的功能。在OpenCV中,可以使用`cv2.threshold()`函数实现二值化。该函数的第一个参数是输入的灰度图像,第二个参数是阈值,第三个参数是最大像素值,第四个参数是二值化类型。
代码如下:
```python
import cv2
img = cv2.imread('image.jpg', 0) # 以灰度模式读取图片
threshold = 127 # 阈值
# 二值化
ret, binary_img = cv2.threshold(img, threshold, 255, cv2.THRESH_BINARY)
cv2.imwrite('binary_image.jpg', binary_img) # 保存二值化后的图像
```
以上是两种常用的图像二值化方法,其中OpenCV库实现更为简单和高效。
阅读全文