img = np.frombuffer(bmpstr, dtype='uint8') img.shape = (bmpinfo['bmHeight'], bmpinfo['bmWidth'], 4) 将得到的 img 导入多个 颜色 相符的 变白色 不符的 改黑色并 保存为bmp
时间: 2024-01-20 22:04:37 浏览: 140
浅谈numpy中np.array()与np.asarray的区别以及.tolist
5星 · 资源好评率100%
好的,这是一个图像处理的任务,需要使用Python的Pillow库来读取和保存bmp图像,并使用numpy库进行图像处理。以下是代码实现:
```python
from PIL import Image
import numpy as np
# 读取bmp图像
bmp = Image.open('image.bmp')
bmpinfo = bmp.info
bmpstr = bmp.tobytes()
img = np.frombuffer(bmpstr, dtype='uint8')
img = img.reshape((bmpinfo['bmHeight'], bmpinfo['bmWidth'], 4))
# 将颜色相符的变为白色,不符的变为黑色
for i in range(img.shape[0]):
for j in range(img.shape[1]):
if img[i,j,0] == 255 and img[i,j,1] == 255 and img[i,j,2] == 255:
img[i,j,:] = [255, 255, 255, 255] # 变为白色
else:
img[i,j,:] = [0, 0, 0, 255] # 变为黑色
# 保存为bmp
img = np.uint8(img)
result = Image.fromarray(img)
result.save('result.bmp')
```
这段代码会读取名为'image.bmp'的bmp图像,将颜色相符的部分变为白色,不符的部分变为黑色,并将处理后的图像保存为名为'result.bmp'的bmp图像。注意,处理后的图像的尺寸和原图像一致,因为没有进行任何缩放操作。
阅读全文