cv2 读取图片数据 保存为BMP
时间: 2023-10-03 18:05:32 浏览: 211
使用 OpenCV 将图片数据保存为 BMP 格式,可以使用 cv2.imencode() 函数将图像数据编码为 BMP 格式,然后使用 Python 的内置函数 open() 将编码后的数据保存到文件中。
以下是一个将图像数据保存为 BMP 格式的示例代码:
```python
import cv2
import numpy as np
# 读取图像文件
with open('image.jpg', 'rb') as f:
img_data = np.frombuffer(f.read(), dtype=np.uint8)
img = cv2.imdecode(img_data, cv2.IMREAD_COLOR)
# 将图像保存为 BMP 文件
bmp_data = cv2.imencode('.bmp', img)[1].tobytes()
with open('image.bmp', 'wb') as f:
f.write(bmp_data)
```
在这个示例中,我们首先使用 Python 的内置函数 open() 以二进制模式打开图像文件,然后使用 numpy 的 frombuffer() 函数将文件数据读入到 numpy.ndarray 对象 img_data 中。接下来,我们使用 cv2.imdecode() 函数将 img_data 中的图像数据解码为 OpenCV 中的图像格式。然后,我们使用 cv2.imencode() 函数将图像数据编码为 BMP 格式,并使用 tobytes() 方法将编码后的数据转换为 bytes 类型的数据。最后,我们使用 Python 的内置函数 open() 将编码后的数据保存到 BMP 文件中。
需要注意的是,cv2.imencode() 函数需要传入两个参数:文件扩展名和图像数据。文件扩展名用于指定要编码的图像格式,常用的文件扩展名包括 '.bmp'、'.jpg'、'.png' 等。
阅读全文