opencv3读取视频并保存为图片
#include <iostream> 
#include <vector>  
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void readvideoandsaveimage(string video, string path)
{
  VideoCapture capture(video);
  long totalFrameNumber = capture.get(CV_CAP_PROP_FRAME_COUNT);
  cout << "total frames is:" << totalFrameNumber << "." << endl;
  //设置开始帧  
  long frameToStart = 1;
  capture.set(CV_CAP_PROP_POS_FRAMES, frameToStart);
  //设置结束帧  
  int frameToStop = 1000;
  //获取帧率  
  double rate = capture.get(CV_CAP_PROP_FPS);
  cout << "rate is:" << rate << endl;
  double delay = 1000 / rate;
  //定义一个用来控制读取视频循环结束的变量  
  bool stop = false;
  long currentFrame = frameToStart;
  if (!capture.isOpened())
  {
    cerr << "Failed to open a video" << endl;
    return;
  }
  Mat frame;
  int num = 1;
  string filename;
  char   temp_file[15];
  while (!stop)
  {
    capture >> frame;
    if (frame.empty())
    {
      //break;
      continue;
    }
    _itoa_s(num, temp_file, 4, 10); //4表示字符长度,10表示十进制,_itoa_s实现整型转字符串  
    filename = temp_file;
    filename = path + filename + ".jpg";
imshow("Extractedframe", frame);
imwrite(filename, frame);
    int c = waitKey(delay);
    if ((char)c == 27 || currentFrame > frameToStop)
    {
      stop = true;
    }
    //按下按键后会停留在当前帧,等待下一次按键  
    if (c >= 0)
    {
      waitKey(0);
    }
    num++;
    currentFrame++;
  }
  capture.release();
  waitKey(0);
}
int main(int argc, char** argv)
{
  string videoFromfile = "D:\\images\\1.mp4";  //读取视频  
  string Imagespath = "D:\\images\\2018-09-22\\";    // 保存图片的文件夹路径一定要有,因为OpenCV不会自动创建文件夹  
  readvideoandsaveimage(videoFromfile, Imagespath);
  return 0;
}
------------------------------------------------------------------运行效果:








opencv3读取视频并保存为图片的更多相关文章
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
		欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ... 
- 使用ffmpeg将BMP图片编码为x264视频文件,将H264视频保存为BMP图片,yuv视频文件保存为图片的代码
		ffmpeg开源库,实现将bmp格式的图片编码成x264文件,并将编码好的H264文件解码保存为BMP文件. 实现将视频文件yuv格式保存的图片格式的測试,图像格式png,jpg, gif等等測试均O ... 
- OpenCV3读取视频或摄像头
		我们可以利用OpenCV读取视频文件或者摄像头的数据,将其保存为图像,以用于后期处理.下面的实例代码展示了简单的读取和显示操作: // This is a demo introduces you to ... 
- opencv 从摄像头中读取视频并保存(c++版)
		原文:http://blog.csdn.net/zhongshijunacm/article/details/68947890 OpenCV中的视频操作函数如下表所列: VideoCapture Vi ... 
- python读取,显示,保存mnist图片
		python处理二进制 python的struct模块可以将整型(或者其它类型)转化为byte数组.看下面的代码. # coding: utf-8 from struct import * # 包装成 ... 
- javaCV开发详解之12:视频转apng动态图片实现,支持透明通道,也支持摄像机、桌面屏幕、流媒体等视频源转apng动态图
		wjavaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG. ... 
- opencv3.2.0实现视频抽帧,并保存成图片
		.实现指定帧数的抽取.和全部帧数的抽取,并保存到指定目录. 在QT新建一个控制台程序,程序源码如下:(程序实现每十帧获取一次帧) #include <QCoreApplication> # ... 
- 读取视屏文件,保存帧图片为ppm文件
		ffmpeg跟sdl的学习过程:一.版本信息:ffmpeg-3.0.2.tar.bz2SDL2-2.0.4.tar.gz二.编译过程:1.ffmgeg的编译:./configure --enable- ... 
- 机器学习进阶-图像基本处理-视频的读取与处理  1.cv2.VideoCapture(视频的载入)  2.vc.isOpened(载入的视频是否可以打开) 3.vc.read(视频中一张图片的读取) 4.cv2.cvtColor(将图片转换为灰度图)
		1.vc = cv2.VideoCapture('test.mp4') #进行视频的载入 2.vc.isOpened() # 判断载入的视频是否可以打开 3.ret, frame = vc.read( ... 
随机推荐
- 高级C/C++编译技术之读书笔记(二)之库的概念
			最近有幸阅读了<高级C/C++编译技术>深受启发,该书深入浅出地讲解了构建过程(编译.链接)中的各种细节,从多个角度展示了程序与库文件或代码的集成方法,提出了面向代码复用和系统集成的软件架 ... 
- Java得到当前系统时间,精确到毫秒的几种方法
			import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calendar; public class Ma ... 
- ActiveMQ面试题
			什么是activemq activeMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信. activemq的作用以及原 ... 
- jQuery使用prop设置checkbox全选、反选
			$(function(){ var checkbox = $("input[type='checkbox']"); //全选 $('#select-all' ... 
- 转载.Avalon-MM 阿窝龙妹妹应用笔记
			Avalon Interface Special http://www.altera.com.cn/literature/manual/mnl_avalon_spec.pdf Avalon总线是SOP ... 
- 【LIUNX】目录或文件权限,权限授予
			三个三个一组看: 1. 第一段表示文件所有者对此文件的操作权限 2. 第二段表示文件所有者所在组对些文件的操作权限 3. 第三段表示除上述两种外的任何用户/组对此文件的操作权限 r读取:4 w写入:2 ... 
- windows64位Oracle安装和PL/SQL配置
			折腾了一下午,趟了几个坑,终于用PL/SQL连上了Oracle,晒晒填坑经历. 先去oracle官网下数据库安装文件,官网有登陆验证,如果没注册的话先注册吧.数据库(下载地址http://www.or ... 
- @Override注解在Eclipse中编译报错
			导入新工程后,发现默认用的jre是1.5版本的,在Eclipse中右击工程选择Build Path->点击Configure Build Path->Java Build Path-> ... 
- (转)Makefile经典教程(掌握这些足够)
			该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客: http://blog.csdn.net/haoel/article/details/2886 makefile很重 ... 
- 解决时间控件input不能选择的问题
			方法一: 方法二: 方法二参考: https://blog.csdn.net/huilan_same/article/details/52385401 
