OpenCV-感兴趣区域ROI
- 2019 年 11 月 13 日
- 筆記
得益于Python科学计算Numpy模块,我们可以把图像转换为拥有三个维度的像素ndarray数组。因此可以通过ndarray数组对图像进行处理。本小节介绍的是ROI。
什么是ROI?
ROI(region of interest),即感兴趣区域。感兴趣区域,就是分析图像所关注的焦点。比如说,我们对一张图片进行人脸的识别,此时我们只需要关注图片中人脸的部分即可,也就是说此时人脸所在的区域就是我们所关注的焦点,也就是感兴趣的区域(ROI)。
提取图片中ROI
提取ROI图片名为"my_love.jpg":

此时我们感兴趣的地方为美女的脸,提取图片中人脸的部分,具体代码如下:

提取出来的人脸部分:

为什么此时指定的区域是[150:500,160:550]?
将图片转换为了三维数组,其实提取roi,简单来说就是获取数组中指定区域的值,由于第三个维度是通道数,我们只关注整张图片中的某一区域,因此在提取的时候不需要考虑第三个维度。那此时只需要考虑图片的高和宽即可,只需要简单的把整张图片看成是一个矩阵(因为此时不需要考虑第三个维度),矩阵从左上角的(0, 0)开始到右下脚的(图像高度, 图像宽度)。
可以把我们关注的区域(ROI)提取出来,相应的也可以将ROI区域合并到原始的图像中去。为了效果明显,我们将提取出来的face进行色彩空间转换,然后将转换后的face合并到原始的图像中。

效果如下所示:

通过上面的实验,我们可以将另一张图片与原始图片进行合并。接下来,将下面这个名为"emoji.jpg"表情图片与上面的原始图片进行合并。
我们将表情图片放在到原始图片的左下角位置:

效果如下所示:
