一、相关代码

#include <opencv2/opencv.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>using namespace std;
using namespace cv;int main()
{int d = 0;char str[300] = { 0 };VideoCapture capture;capture.open(0);//判断相机是否打开if (!capture.isOpened()){cout << "open camera failed" << endl;return -1;}while (true){Mat camera_frame;capture >> camera_frame; //读取图像帧至camera_frame// 第二种获取方式//capture.read(camera_frame);if (!camera_frame.empty()){imshow("picture", camera_frame);}// 按“s”键保存图片至指定路径int k = waitKey(2);if (k == 's'){// 路径斜杠要注意,容易出错sprintf_s(str,300, "D:\\360MoveData\\Users\\ZNC\\Desktop\\op\\%d.jpg", ++d);imwrite(str, camera_frame);}// 按q键退出程序if (k == 'q'){break;}}// 销毁显示窗口,不添加按q会报错cv::destroyAllWindows();
}

 二、相关知识

(1)sprintf_s()函数

sprintf_s是sprintf的安全版本,指定缓冲区长度来避免sprintf()存在的溢出风险,区别在sprintf_s第二个参数,可以控制缓冲区大小 。

sprintf/sprintf_s指的是字符串格式化命令,其功能是把格式化的数据写入指定字符串中。

sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。

头文件
stdio.h

原型
int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format,
[argument] ...);

参数列表
buffer:char型指针,指向将要写入的字符串的缓冲区。

sizeOfBuffer:缓冲区大小。

format:格式化字符串。

[argument]...:可选参数,可以是任何类型的数据

相关参考: 

(1)opencv学习---VideoCapture 类基础知识_hairuiJY的博客-CSDN博客_cv::videocapture

(2)c++中sprintf和sprintf_s的区别_奔跑的大茄子的博客-CSDN博客_c++ sprintf_s

Opencv按‘s‘键连续保存多张图片相关推荐

  1. Opencv学习笔记(五)连续保存多张图片(用于标定等)

    在做图像标定的时候有一件事情很烦,就是我需要连续拍多张图片,我们当然可以通过软件直接截取,但是原谅作为小白的我当时并没有找到这个软件(坑爹啊,后来别人给我了). 于是就只能找找能不能通过程序去保存的. ...

  2. opencv连续保存多张图片

    使用opencv保存多张图片存,命名以数字递增,例如1.jpg .2.jpg - Img_Name = "./eds/copyimages/" + str(i)+ ".j ...

  3. 【OpenCV】图片操作小结:RAW图转image以及image连续保存

    opencv将RAW图转image uint32_t ReadRawImage(cv::Mat& image,const std::string& path,int width,int ...

  4. 视频到图片(每隔几帧保存一张图片)opencv实现

    如果想要自动截取一个视频的图片,又不想手动暂停截取,那可以试试用opencv自动截取(比如想要自动截取喜欢电影的经典台词与图片). 背景说明:一个小意外,录屏视频没有声音,想着把视频里的PPT截取出来 ...

  5. opencv提取视频帧,将多张图片组合成视频(C++)

    OpenCV-视频处理-视频处理5191 2 opencv提取视频帧,将多张图片组合成视频(C++) 作者:bit452 参考:http://blog.sina.com.cn/s/blog_5f593 ...

  6. python opencv打开摄像头,截图保存

    python opencv打开摄像头,截图保存,学习结果如下: 使用python打开摄像头 import cv2 cap = cv2.VideoCapture(0) #设置摄像头 0是默认的摄像头 如 ...

  7. 通过ffmpeg实时读取宇视摄像头的高清帧流数据,并保存4张图片进行4合一照片的生成。

    通过ffmpeg实时读取宇视摄像头的高清帧流数据,并保存4张图片进行4合一照片的生成. FFmpeg视频解码过程 通常来说,FFmpeg的视频解码过程有以下几个步骤: 注册所支持的所有的文件(容器)格 ...

  8. 深度学习自学(二十一):连续保存人脸检测、关键点检测后人脸状态-循环队列实现

    整理的人脸系列学习经验:包括人脸检测.人脸关键点检测.人脸优选.人脸对齐.人脸特征提取等过程总结,有需要的可以参考,仅供学习,请勿盗用.https://blog.csdn.net/TheDayIn_C ...

  9. OpenCV技巧 | 常用格式图片保存为透明背景图片(附Python源码)-教你轻松制作Logo

    导读 本文主要介绍使用OpenCV将常用格式图片保存为透明背景图片的方法与实现代码. 实现目标 本文的目标有如下两个: ① 将常见格式[jpg/png/bmp]白色背景图片转换保存为透明背景图片: ② ...

最新文章

  1. weeklyblogging_20100805PM
  2. JVM 运行时数据区详解,写得非常好!
  3. Java读取Excel内容
  4. 计算机机房电力切换演练方案,机房停电应急演练实施具体技术方案.doc
  5. MyBatis collection的两种形式——MyBatis学习笔记之九
  6. c# 关于WebBrowser的模拟提交InvokeMember方法是什么意思!
  7. (42)System Verilog接口变量数据位宽扩展
  8. MongDB之shard_主从,副本集,分片的理解
  9. 星云链智能合约开发(六):智能合约开发与部署
  10. 通过掌握谷歌成为更好的程序员
  11. Mycat 分布式事务的实现
  12. 杭电HDUacm2098
  13. 局域网 git服务器 虚拟机,GitLab服务器傻瓜式搭建教程
  14. 视频无损剪切分割截取合并工具
  15. 【原创】将RGB图像转换到CMY空间
  16. Kubernetes 调度 - 污点和容忍度详解
  17. 【转】解决win10系统每次重启桌面图标排列混乱的问题!亲测有效!!
  18. mc是用java写的吗_都说MC的代码特别差劲,你觉得它在所有游戏中,能排第几?...
  19. 简单理解 TP、FN、FT 及 TN和准确率、精确率、召回率 的含义
  20. 项目中如何进行有效的沟通管理(一)

热门文章

  1. pygame之《飞机大战》(一)
  2. usb引导盘检测计算机系统,解决方案:如何制作DOS可引导USB闪存驱动器,小白必须查看各种图形教程来制作最受欢迎的USB可引导磁盘...
  3. 辅助角公式的几何意义
  4. 2023Track Tech防伪溯源技术展| 防伪溯源 | 智慧包装 | 安全印刷
  5. 2019经济学396考研视频资料【全】
  6. FreeBuds 5耳机戴法是怎么样的?进来看看
  7. 格言警句收集2-双语对照
  8. 饥荒联机版服务器启动慢_饥荒联机版大型攻略——航海篇
  9. Super-resolution:Camera Lens Super-Resolution(论文解读二十)
  10. 使用SDEI上报RAS故障