python将图像转为二值图像,并保存
时间: 2024-02-11 09:09:59 浏览: 68
要将图像转为二值图像并保存,可以在上一个示例代码的基础上进行修改,添加保存操作即可。
以下是一个示例代码,将RGB图像转为灰度图像,并使用Otsu自适应阈值算法将灰度图像转为二值图像,并保存为新的图像文件:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 自适应阈值算法,将灰度图像转为二值图像
_, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# 保存二值图像
cv2.imwrite('binary_image.jpg', binary)
# 显示二值图像
cv2.imshow('binary image', binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,使用`cv2.imwrite()`函数将二值图像保存为新的图像文件,保存路径为当前工作目录下的`binary_image.jpg`文件。
相关问题
python将图像转为二值图像
要将图像转为二值图像,可以使用Python中的OpenCV库。
以下是一个示例代码,将RGB图像转为灰度图像,并使用Otsu自适应阈值算法将灰度图像转为二值图像:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 自适应阈值算法,将灰度图像转为二值图像
_, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
# 显示二值图像
cv2.imshow('binary image', binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
需要注意的是,使用Otsu自适应阈值算法将灰度图像转为二值图像时,需要先将灰度图像转为单通道,即使用`cv2.cvtColor()`函数将BGR图像转为灰度图像。
python将矩阵转为二值图像
可以使用Python中的OpenCV库来将矩阵转为二值图像。以下是一个示例代码:
```python
import cv2
import numpy as np
# 生成一个5x5的随机矩阵
matrix = np.random.randint(2, size=(5, 5))
# 将矩阵转为灰度图像
gray = matrix * 255
# 将灰度图像转为二值图像
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 显示结果
cv2.imshow("Matrix", matrix.astype(np.uint8)*255)
cv2.imshow("Binary", binary)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先生成一个5x5的随机矩阵,然后将矩阵转为灰度图像,再将灰度图像转为二值图像,最后显示结果。可以根据需要修改矩阵的大小和阈值来得到不同的二值图像。
阅读全文