【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;
}
运气好的话没准儿今天就能结束秋招了…
=============================================================
大前提是要会配置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;
}
运气好的话没准儿今天就能结束秋招了…
相关文章推荐
- VB编程中的技巧一行可以解决的代码
- 在CSS里加下面任何一行代码都可以解决图片之间的间隙
- Javascript C#真正可以交互的DES加解密代码
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
- 如果浏览器报JavaScript出现错误导致代码程序中断,可以这样解决!
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
- Scala可以在交互模式下运行但无法执行脚本的解决方法
- Android防止过快点击造成多次事件 一行代码搞定,特别简单,可以复用
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
- (转)一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
- Webview与js交互漏洞及解决方法(有注释代码)
- 基于OPENCV的相机标定及代码
- 一行代码解决VB.NET中Dialog窗体销毁不刷新主窗体
- JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
- 一行代码写一个轮播,想了好久,感觉这样可以。
- 不需要一行代码解决键盘遮挡的问题
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
- 在很多论坛上看到了有人抱怨Flash CS5中,代码提示(Code hint)有时不显示的问题,这个问题可能有很多原因,我整理了几个解决办法,有可能可以帮助到你~
- vs2010在配置完opencv2.4.6进行代码测试问题解决
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10