使用python OpenCV,将彩色图片中除了一块矩形区域外更改为黑白色,而矩形区域保留彩色
时间: 2024-02-27 12:52:21 浏览: 74
可以按照以下步骤实现:
1. 读取彩色图片并获取其尺寸大小。
```python
import cv2
img = cv2.imread('input.jpg')
height, width = img.shape[:2]
```
2. 创建一个和原图一样大小的黑白图片。
```python
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
mask = cv2.rectangle((width, height), (x1, y1), (x2, y2), (255, 255, 255), -1)
result_img = cv2.bitwise_or(img, img, mask=mask)
result_img = cv2.cvtColor(result_img, cv2.COLOR_BGR2GRAY)
result_img = cv2.bitwise_not(result_img)
```
3. 通过创建一个矩形区域的掩膜,将该区域保留彩色。
```python
result_img = cv2.cvtColor(result_img, cv2.COLOR_GRAY2BGR)
mask = cv2.rectangle((width, height), (x1, y1), (x2, y2), (0, 0, 0), -1)
result_img = cv2.bitwise_or(result_img, img, mask=mask)
```
其中,(x1, y1) 和 (x2, y2) 分别代表矩形区域左上角和右下角的坐标。
最后,将结果图片保存。
```python
cv2.imwrite('output.jpg', result_img)
```
阅读全文