OpenCV学习8 获取图像的感兴趣区域 截图(1)
我想我们都遇到过这样的事,当我们找到一张图片时对其中的某一部分十分中意,其余部分则想要遮起来。如图:
如上图小弟就十分中意里面的小姐姐,但是旁边那个男生则不想看到。那么问题来了,如何在一张图片中找出自己喜欢的部分而去除掉自己不喜欢的部分呢?简单来说就是截图并且裁剪。那么如何在OpenCV里面实现这个功能呢?
经过多番查阅小弟终于在书中找到了在图像处理领域的专有名词。
感兴趣区域:ROI (region of interest)
该名词的解释就像上面说的一样从图像中选择一个我们感兴趣的图像区域,圈定该区域,进行下一步处理。
这样就顺眼多了 aha
代码很简单
#include<opencv2\opencv.hpp>
#include<opencv2\imgproc\imgproc.hpp>
using namespace cv;
int main()
{
Mat a;
a=imread("lalala.jpg");
imshow("ԭʼͼ",a);
Rect roiRect(600,230,380,850);
Mat roiMat(a,roiRect);
imshow("ROI IMAGE",roiMat);
waitKey(0);
return 0;
}
小提示
解释一下Rect roiRect(600,230,380,850);
这里表示定义一个矩形框的感兴趣区域
Rect类的变量有x、y、width、heigh,分别表示左上角的像素坐标以及矩形的宽和长。
什么?还不懂?看下图
对啊 那怎么知道左上角的像素坐标呢?
emmm 小弟用了一种比较蠢的办法
将图片用画图工具打开 然后 你就发现
就是这样ε=(´ο`*)
后来觉得这个办法比较取巧,我也知道。其实还有更好的办法;更厉害的算法;更。。。一个真正利用OpenCV实现的截图工具
请看下一篇
1624393