python灰度图像二值化
时间: 2023-10-30 11:05:37 浏览: 125
要将Python灰度图像二值化,可以使用OpenCV库中的threshold函数。以下是三种常用的二值化方法的示例代码:
1. 自定义阈值:使用图像的均值作为阈值来分割图像。
```python
import cv2
import numpy as np
def custom_threshold(input_img_file):
image = cv2.imread(input_img_file)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
h, w = gray.shape[:2]
m = np.reshape(gray, [1, h*w])
mean = m.sum() / (h*w)
ret, binary = cv2.threshold(gray, mean, 255, cv2.THRESH_BINARY)
return binary
```
2. 全局阈值(THRESH_TRIANGLE):使用三角形算法计算全局阈值来分割图像。
```python
import cv2
def threshold_by_triangle(input_img_file):
image = cv2.imread(input_img_file)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_TRIANGLE)
return binary
```
3. 自适应阈值(THRESH_TOZERO):使用自定义的阈值来分割图像。
```python
import cv2
def threshold_by_tozero(input_img_file):
image = cv2.imread(input_img_file)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_TOZERO)
return binary
```
请注意,上述代码中的input_img_file是输入的灰度图像文件路径,binary是二值化后的图像。你可以根据自己的需求选择适合的二值化方法进行图像处理。
阅读全文