ROI简介
ROI指的是Region of interest ,即感兴趣区域。我们经常在人脸识别中看到的标记人脸的框框就可以看成一种ROI
创造ROI
代码如下
#引入包
import cv2
#读图片
img = cv2.imread('bear.jpg',1)
#根据需求修改图片的大小,这里注意我们输入的1920×1080中前面的1920是宽度,后面是高度。这和图片的输出是完全相反的
img = cv2.resize(img,(1920,1080))
#rectang函数是ROI构建的函数,一共有5个参数
#第一个参数是传入的图片名称
#第二三参数是设置ROI的范围,下文将会详细讲解
#第四五个参数是设置ROI边框的颜色和粗细。这里边框是红色,宽度为3
cv2.rectangle(img,(1500,300),(1400,450),(0,0,255),3)
cv2.imshow("picture",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
具体演时如下:
原图:
效果:
这里我想说明一下红框的范围,rectangle函数中的第二和第三参数分别指的是红框的这两个对角点,具体的位置可以根据需求自己调整
下面我想记录一下ROI在局部的操作
import cv2
img = cv2.imread('bear.jpg',1)
print(img.shape)
#取ROI区域
face = img[4:9,15:45]
#对区域进行操作,注意若改变黑白前后则会导致通道数量改变
gray_face = cv2.cvtColor(face,cv2.COLOR_RGB2GRAY)
backface = cv2.cvtColor(gray_face,cv2.COLOR_GRAY2BGR)
#将改变后的区域重新赋值给img
img[10:95,15:45] = backface
cv2.imshow('gray face',img)
cv2.waitKey(100000)
cv2.destroyAllWindows()
这样我们就可以做到对局部操作了