opencv 截图并保存(转载)

代码功能:选择图像中矩形区,按S键截图并保存,Q键退出。

#include<opencv2/opencv.hpp>
#include<iostream>

using namespace std;
using namespace cv;

Rect select;
bool select_flag = false;
Mat img, showImg;

void S_on_Mouse(int event, int x, int y, int flags, void*param)//画矩形框并截图
{
Point p1, p2;
switch (event)
{
case EVENT_LBUTTONDOWN:
{
select.x = x;
select.y = y;
select_flag = true;
}
break;
case EVENT_MOUSEMOVE:
{
if (select_flag)
{
img.copyTo(showImg);
p1 = Point(select.x, select.y);
p2 = Point(x, y);
rectangle(showImg, p1, p2, Scalar(0, 255, 0), 2);
imshow("img", showImg);
}
}
break;
case EVENT_LBUTTONUP:
{
//显示框出的ROI
Rect roi = Rect(Point(select.x, select.y), Point(x, y));
if (roi.width && roi.height)
{
Mat roiImg = img(roi);
imshow("roi", roiImg);
imwrite("D://video picture//1.jpg", roiImg);
}
select_flag = false;
}
break;
}
}

int main()
{
img = imread("D://Libs//opencv310//opencv//sources//samples//data//aero1.jpg", 1);
showImg = img.clone();
select.x = select.y = 0;
imshow("img", showImg);

while (1)
{
int key = waitKey(10);
switch (key)
{
case 's':
setMouseCallback("img", S_on_Mouse, 0);
break;
}
if (key == 27 || key == 'q')
break;
}
waitKey(0);
return 0;
}

原文链接:https://blog.csdn.net/u013539952/article/details/77171061

最新文章

  1. iOS开发备忘录:属性列表文件数据持久化
  2. C#设计模式——访问者模式(Visitor Pattern)
  3. 使用VS2010开发Qt程序的一点经验(转载)
  4. 李洪强漫谈iOS开发[C语言-043]-判断较早日期
  5. git submodule的操作
  6. 今年暑假不AC1
  7. Maven项目下WEB-INFO目录下没有编译的classes文件
  8. Vultr优惠码20美元享受20GB SSD和2T流量
  9. 对于python的__name__=&quot;__main__&quot;的含义的理解
  10. Spring Boot快速入门(三):依赖注入
  11. understand 在windows 以及 unbuntu 下的安装
  12. SDN2017 第二次实验作业
  13. 一种3D空间的柱状多边形检测实现
  14. 第3课 进化后的 const分析
  15. pycharm格式报错: Remove redundant parentheses
  16. SpringBoot日记——Thymeleaf进阶小篇
  17. 新版本读取老版本文件崩溃BUG
  18. FFmpeg 入门(6):音频同步
  19. hdu 4198:Quick out of the Harbour解题报告
  20. Web安全测试指南--认证

热门文章

  1. 牛客练习赛63 C 牛牛的揠苗助长 主席树 二分 中位数
  2. ElasticSearch添加索引
  3. 串行&amp;并行&amp;并发,同步&amp;异步
  4. SQL关联查询
  5. Python学习笔记之 Python设计思想&amp;设计原则
  6. HTML学习第三天
  7. java 匿名内部类与包的声明访问
  8. C#LeetCode刷题之#589-N叉树的前序遍历(N-ary Tree Preorder Traversal)
  9. 【译】GitHub 为什么挂?官方的可行性报告为你解答
  10. 计算机网络要点---Http