img = np.frombuffer(bmpstr, dtype='uint8') img.shape = (bmpinfo['bmHeight'], bmpinfo['bmWidth'], 4) 将得到的 img 导入2个 颜色 'FFFFFF','96ABAB' 相符的 变白色 不符的 改黑色并 保存为bmp
时间: 2023-12-26 12:06:04 浏览: 30
您可以使用 NumPy 数组的逻辑运算和切片操作来实现将相符的颜色变为白色,不相符的颜色变为黑色,然后将结果保存为 BMP 格式。下面是一个可能的实现:
```python
import cv2
import numpy as np
def process_image(bmpstr, bmpinfo):
# 转换为numpy数组
img = np.frombuffer(bmpstr, dtype='uint8')
img.shape = (bmpinfo['bmHeight'], bmpinfo['bmWidth'], 4)
# 将BGR颜色通道顺序转换为RGB颜色通道顺序
img = img[...,::-1]
# 将RGB颜色通道顺序转换为BGR颜色通道顺序
img[..., [0, 1, 2]] = img[..., [2, 1, 0]]
# 将相符的颜色变为白色,不相符的颜色变为黑色
white_color = np.array([255, 255, 255, 255], dtype='uint8')
black_color = np.array([0, 0, 0, 255], dtype='uint8')
color1 = np.array([int(c, 16) for c in 'FFFFFF'], dtype='uint8')
color2 = np.array([int(c, 16) for c in '96ABAB'], dtype='uint8')
mask1 = np.all(img[..., :3] == color1, axis=-1)
mask2 = np.all(img[..., :3] == color2, axis=-1)
img[mask1] = white_color
img[mask2] = white_color
img[~(mask1 | mask2)] = black_color
# 保存为BMP格式
cv2.imwrite('1.bmp', img)
return img
```
在这个实现中,我们首先将读取到的图像数据转换为 NumPy 数组,然后将 BGR 颜色通道顺序转换为 RGB 颜色通道顺序,再将 RGB 颜色通道顺序转换为 BGR 颜色通道顺序。接着,我们使用 NumPy 数组和逻辑运算符来创建两个掩码,将相符的颜色变为白色,不相符的颜色变为黑色。最后,我们使用 OpenCV 的 `cv2.imwrite()` 方法将处理后的图像保存为 BMP 格式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)