您的位置:首页 > 编程语言

【Opencv_contribute】Bouding Box (ROI,一行代码解决框选交互,可以用来标定)

2017-09-22 09:30 495 查看
惯例先放效果:



=============================================================

大前提是要会配置Opencv的contribute模块。

如果用的VS2015,直接在Nuget包里找,有个Opencv3.1的contribute模块

如果用的VS2017,把项目-平台工具集选成X140(如果没安装那我也没办法)

//如果不想用别人做好的,可以自己编译contribute模块,类似的参考我之前的博客:
地址

=====================================================================

先来段非常简洁的代码:

#include <opencv2/tracking.hpp>
using namespace cv;
int main()
{
Mat image = imread("test.png");
Rect2d r = selectROI(image, false);
imshow("ROI", image(r));
cvWaitKey(-1);
return 0;
}它能达到的是如下效果:



下面例子可以一张图框选多个,按ESC结束,也就是一开始放的例子

#include <opencv2/tracking.hpp>
#include<vector>
using namespace std;
using namespace cv;
int main()
{
Mat image = imread("timg.jpg");

vector<Rect2d> rects;
bool fromCenter = false;
// 选择一组框,并且把交互界面的名字重命名为Image
selectROI("Image", image, rects, fromCenter);
for (int i = 0; i < rects.size(); ++i)
imshow("Image" + to_string(i), image(rects[i]));

cvWaitKey(-1);
return 0;
}

运气好的话没准儿今天就能结束秋招了…

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息