opencv将ROI以外区域改为黑色背景的代码
时间: 2023-09-22 20:09:24 浏览: 414
opencv实现图像颜色空间转换
要将ROI以外的区域改为黑色背景,你可以使用掩膜(mask)来实现。以下是一个示例代码:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread('image.jpg')
# 创建与图像相同大小的黑色背景
black_background = np.zeros(image.shape, dtype=np.uint8)
# 创建掩膜
mask = np.zeros(image.shape[:2], dtype=np.uint8)
# 定义ROI区域
x, y, w, h = 100, 100, 200, 200
# 在掩膜上绘制ROI区域的白色矩形
cv2.rectangle(mask, (x, y), (x + w, y + h), (255), -1)
# 将掩膜应用于图像,将ROI以外的区域置为黑色
masked_image = cv2.bitwise_and(image, image, mask=mask)
# 将masked_image与黑色背景相加,得到最终结果
result = cv2.add(black_background, masked_image)
# 显示结果
cv2.imshow("Result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请确保将代码中的 `'image.jpg'` 替换为你要处理的图像路径,并根据需要调整ROI区域的坐标和大小。这段代码首先创建与图像相同大小的黑色背景,然后创建一个与图像大小相同的掩膜,并在掩膜上绘制ROI区域的白色矩形。接下来,使用 `cv2.bitwise_and` 将掩膜应用于图像,将ROI以外的区域置为黑色。最后,将 `masked_image` 与黑色背景相加,得到最终结果,并将其显示出来。
这样就可以将ROI以外的区域改为黑色背景。
阅读全文