opencv的Mask操作,选择图片中感兴趣的区域

最近做目标检测任务的时候,需要对固定区域的内容进行检测,要用到opencv的mask操作,选择图片固定的区域

代码

import cv2
import numpy as np

img = cv2.imread('data/images/smoking.png')

# 弹出一个框 让你选择ROI | x,y是左上角的坐标
x,y,w,h = cv2.selectROI(img)
print(x, y, w, h)

# 创建mask
mask = np.zeros_like(img[:,:,0])

# 将感兴趣的区域的值设置为1
mask[y:y+h,x:x+w] = 1

# 将mask与原图像做与操作,留下感兴趣的区域,其它区域变成了0
masked_img = cv2.bitwise_and(img,img,mask=mask)

# 显示图片
cv2.imshow('img',img)
cv2.imshow('img_mask',masked_img)
cv2.waitKey()

# 保存图像
cv2.imwrite('data/images/masked_img.png', masked_img)

运行结果

原图片

opencv的Mask操作,选择图片中感兴趣的区域_第1张图片

执行 x,y,w,h = cv2.selectROI(img)

opencv的Mask操作,选择图片中感兴趣的区域_第2张图片

结果

opencv的Mask操作,选择图片中感兴趣的区域_第3张图片

你可能感兴趣的:(计算机视觉模型笔记,opencv,人工智能,计算机视觉)