使用python及OpenCV,通过设置mask的方式,将一张图像中的非感兴趣区域设置为黑白色,感兴趣区域设置为彩色
时间: 2024-02-27 10:52:07 浏览: 61
使用Python-OpenCV消除图像中孤立的小区域操作
5星 · 资源好评率100%
好的,以下是使用Python和OpenCV通过设置mask的方式将一张图像中的非感兴趣区域设置为黑白色,感兴趣区域设置为彩色的代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 创建一个与原始图像相同大小的掩模(mask)
mask = np.zeros(img.shape[:2], dtype=np.uint8)
# 设置一个感兴趣的区域(ROI)
roi = (100, 50, 200, 150)
# 在掩模上绘制感兴趣区域的白色矩形
cv2.rectangle(mask, (roi[0], roi[1]), (roi[0] + roi[2], roi[1] + roi[3]), 255, -1)
# 将掩模应用于图像
result = cv2.bitwise_and(img, img, mask=mask)
# 将非感兴趣区域设置为黑白色
result[np.where((result == [0, 0, 0]).all(axis=2))] = [255, 255, 255]
# 将感兴趣区域设置为彩色
result[np.where((result != [255, 255, 255]).all(axis=2))] = [0, 255, 0]
# 显示图像
cv2.imshow('Image', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在代码中,首先读取一张图像,并创建一个与原始图像相同大小的掩模。然后,设置一个感兴趣的区域(ROI),并在掩模上绘制一个白色矩形,表示该区域是感兴趣的。接下来,将掩模应用于图像,这将使得非感兴趣区域变为黑白色,感兴趣区域保持彩色。然后,将感兴趣区域设置为彩色,这里将感兴趣区域的颜色设置为绿色。最终,通过OpenCV的imshow函数显示处理后的图像。
阅读全文