OpenCV拍摄图像(C++):定时拍摄和按键拍摄

使用摄像头进行图像拍摄是常见的需求,一般分为两种拍照方式:定时拍照和按键拍照
如果你还没有完成Linux环境下使用OpenCV调用摄像头,请参考本人另一篇博客OpenCV读取摄像头

定时拍摄

大致思路:

  • 读取摄像头中的图像数据,将其存放到Mat中
  • 定时使用imwrite函数将其写入.jpg文件
  • 文件以当前系统时间命名

具体代码如下

#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
#include <time.h> using namespace std;
using namespace cv;int main()
{VideoCapture cap;           //用于打开摄像头cap.open(0);char pic_Name[128] = {};     //照片名称if(!cap.isOpened()){cout << "The camera open failed!" << endl;}Mat frame;time_t nowTime;tm* now;while(1){cap >> frame;if(frame.empty())break;imshow("Camera",frame);        //展示当前窗体time(&nowTime);             //获取系统当前时间戳now = localtime(&nowTime);  //将时间戳转化为时间结构体sprintf(pic_Name,"photo/%d-%d-%d %d:%d:%d.jpg",now->tm_year + 1900, now->tm_mon + 1, now->tm_mday, now->tm_hour+8, now->tm_min, now->tm_sec);cout << "This timenow is:" << now->tm_year + 1900 << "-" << now->tm_mon + 1 << "-" << now->tm_mday << " " << now->tm_hour + 8 << ":" << now->tm_min << ":" << now->tm_sec << endl;imwrite(pic_Name, frame);    //将Mat数据写入文件if(waitKey(30000) >= 0)     //暂停30S,可随意更改break;}
}
按键拍摄

使用waitKey()函数可以延时程序,并获取用户按下的键的ASCII码值
例如:waitKey(30) == 27效果为延时30ms,且延时期间按下esc键(其ASCII码值为27)之后窗口程序结束延时

程序实例如下:

#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
#include <time.h> using namespace std;
using namespace cv;int main()
{VideoCapture cap;cap.open(0);char pic_Name[128] = {};                 //照片名称if(!cap.isOpened()){cout << "The camera open failed!" << endl;}Mat frame;while(1){cap >> frame;if(frame.empty())break;imshow("camera", frame);time_t nowTime;tm* now;if(waitKey(30)  == 'q')        //按下q键进行拍照{time(&nowTime);              //获取系统当前时间戳now = localtime(&nowTime);  //将时间戳转化为时间结构体sprintf(pic_Name,"photo/%d-%d-%d %d:%d:%d.jpg",now->tm_year + 1900, now->tm_mon + 1, now->tm_mday, now->tm_hour+8, now->tm_min, now->tm_sec);imwrite(pic_Name, frame); //将Mat数据写入文件}}
}

需要注意的是, opencv程序编译需要添加相应的编译选项以链接库文件,以上程序在编译时必须添加以下语句:

`pkg-config --cflags --libs opencv`

OpenCV拍摄图像(C++)相关推荐

  1. 使用Python+OpenCV实现图像数据采集

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 通常,数据科学家会建立一个图像识别模型,观察其准确性,如果足够高, ...

  2. 利用OpenCV实现图像修复(含源码链接)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前一段时间小白分享过关于图像修复技术介绍的推文(点击可以跳转),有 ...

  3. 应用OpenCV进行图像旋转和平移

    简 介: 本文中,你了解了了如何通过OpenCV完成对于图像的旋转和平移.我们首先通过 getRotationMatrix2D() 获取2D旋转矩阵,然后完成了对于图像的旋转.具体是通过warpAff ...

  4. opencv 图片边缘渐变_基于OpenCV的图像卡通化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本期将创建一个类似于Adobe Lightroom的Web应用程序 ...

  5. python全景图像拼接_Python+OpenCV实现图像的全景拼接

    本文实例为大家分享了Python+OpenCV实现图像的全景拼接的具体代码,供大家参考,具体内容如下 环境:python3.5.2 + openCV3.4 1.算法目的 将两张相同场景的场景图片进行全 ...

  6. 用 OpenCV 检测图像中各物体大小

    我们需要定义一个比值,它测量每个给定指标的像素个数. 我将其称为「像素/度量」比率,在下一节中我将更正式地定义它. 1.「像素/度量」比率 为了确定图像中物体的大小,我们首先需要使用一个参考物体进行「 ...

  7. python去除图像光照不均匀_python+opencv——去除图像光照不均匀

    使用python版本的opencv去除图像中的光照不均匀 在图像处理中,如果图像中存在光照不均匀,则会影响图像处理的效果,比如在图像文本识别和图像分割中.本博客对于图像均衡化的处理主要参考文章:一种基 ...

  8. 利用opencv对图像进行长曝光

    利用opencv对图像进行长曝光 本文首发于公众号[Opencv视觉实践],翻译自光头哥哥的博客: [Long exposure with OpenCV and Python],仅做学习分享. 原文链 ...

  9. Python,OpenCV骨架化图像并显示(skeletonize)

    Python,OpenCV骨架化图像并显示(skeletonize) 1. 效果图 2. 源码 参考: 1. 效果图 自己画一张图,原图 VS 骨架效果图如下: opencv logo原图 VS 骨架 ...

最新文章

  1. Hive学习之七《 Sqoop import 从关系数据库抽取到HDFS》
  2. 第二章:SpringBoot与JSP间不可描述的秘密
  3. docker php伪静态无效,docker 安装 thinkphp+nginx
  4. IDEA中Git操作
  5. vue 给url 中文参数 添加编码解码
  6. BeetleX之简单HTTP/HTTPS实现
  7. fast路由器服务器未响应,win7系统下fast路由器进不了设置界面如何解决
  8. 30.Linux/Unix 系统编程手册(上) -- 线程:线程同步
  9. github仓库主页介绍
  10. C++学习之 delete 构造器
  11. java simon_Java Simon
  12. MMORPG网络游戏开发之用户管理
  13. 云计算 IaaS PaaS SaaS 基础概念和区别终于搞清楚了
  14. android 六边形简书,水波浪贝塞尔效果(六边形)
  15. mybatis一个怪异的问题: Invalid bound statement not found 作者及来源: babyblue - 博客园 收藏到→_→: 摘要: mybatis一个怪异
  16. 云知声深耕智慧语音,让智能“听得见”
  17. python-cheatsheet,一款很全的Python小抄库
  18. 改变radio默认样式
  19. 【Linux】wget命令的使用
  20. 简述人工神经网络的定义,简述神经网络算法

热门文章

  1. 禾川兴科技推出LDR6028 SOP8性价比更高的充电芯片 针对无线领夹式麦克风加充电方案所打造的芯片 。
  2. 修改设置显示为平板模式
  3. 【spring】@Configuration的使用与原理
  4. python可视化——混淆矩阵(鸢尾花)
  5. oracle数据库多列去重查询,oracle 数据库 去重查询
  6. html自动对焦,html5相机模糊 - getuserMedia自动对焦无法正常工作
  7. 百度前端技术学院—-小薇学院(HTML CSS课程任务)
  8. Java生成PDF报表文件
  9. Python - Object类
  10. 安装dockor-compose编排工具创建个人博客