opencv 读取视频内容写入图片帧
现在主要把自己平时用到的opencv功能记录到博客,一方面方便自己有时间来回顾,另一方便提供给大家一个参考。
opencv 读取视频内容,把视频帧每一帧写成图片,存入电脑中。这个步骤是许多数据处理的基础。在写入图片的时候,按照图片数量进行编号和命名,统一名称长度,为了在进行批处理时,不改变图片的顺序。
/*输入视频的路径*/
/*输出路径暂时写入外面的临时文件夹,自己可以灵活修改*/ void ParseVideo2Images(std::string &strVideo)
{
cv::VideoCapture videoCap(strVideo.c_str()); cv::Mat imgFrame; char cImg[];
int iIndex = ;
/*逐条读取视频数据,写入文件*/
while (videoCap.read(imgFrame))
{
sprintf(cImg , "%s%d%s", "" , iIndex++ , ".jpg"); std::string strName(cImg);
//std::cout << strName << std::endl; /*进行名称的截取,截取名称的后10位,变为00001.jpg*/
std::string str = strName.substr(strName.size()-);
/*输出路径设定*/
strName = "..//HD_images//" + str;
//std::cout << strName << std::endl;
//std::cout << str << std::endl;
cv::imwrite(strName,imgFrame); } }
opencv 读取视频内容写入图片帧的更多相关文章
- Opencv读取视频
CvCapture 是一个结构体,用来保存图像捕获所需要的信息. opencv提供两种方式从外部捕获图像 一种是从摄像头中, 一种是通过解码视频得到图像. 两种方式都必须从第一帧开始一帧一帧的按顺序获 ...
- OpenCV 读取视频 多种方式
OpenCV中常见的视频方式是while循环读取,可是,当遇到嵌套循环呢 1.常见的while循环 ,没有嵌套循环 cv::VideoCapture capture("d:/test/dem ...
- C/C++ OpenCV读取视频与调用摄像头
原文:http://blog.csdn.net/qq78442761/article/details/54173104 OpenCV通过VideoCapture类,来对视频进行读取,调用摄像头 读取视 ...
- Python opencv提取视频中的图片
作者:R语言和Python学堂链接:https://www.jianshu.com/p/e3c04d4fb5f3 这个函数就是本文要介绍的video2frames()函数,功能就是从视频中提取图片,名 ...
- 【计算机视觉】OpenCV读取视频获取时间戳等信息(PS:经测试并不是时间戳,与FFMPEG时间戳不一样)
OpenCV中通过VideoCaptrue类对视频进行读取操作以及调用摄像头,下面是该类的API. 1.VideoCapture类的构造函数: C++: VideoCapture::VideoCapt ...
- Opencv读取视频一闪而过情况分析
在参加一个软件比赛需要用opencv对视频的处理,也碰到了一些问题. 最常见的就是视频一闪而过了,在网上查了好久都没解决, 最后重装在配置环境变量时发现的. 现在我来终结一下估计是比较全的了. 先说明 ...
- python+opencv读取视频,调用摄像头
引用 import cv2 import numpy 创建摄像头对象 cap = cv2.VideoCapture("videoTest/test1.mp4") #参数为视频文件目 ...
- opencv 将视频分解成图片和使用本地图片合成视频
代码如下: // cvTest.cpp : Defines the entry point for the console application. #include "stdafx.h&q ...
- pyhthon Opencv截取视频中的图片
import os import cv2 ##加载OpenCV模块 def video2frames(pathIn='', pathOut='', imgname='', only_output_vi ...
随机推荐
- readyState xhr对象当前状态
var request=new XMLHttpRequest(); request.open("GET","get.php",true); request.se ...
- 在Linux上安装ipmitool
https://blog.csdn.net/bnanoou/article/details/43985839
- vuefor循环
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- C++ Map实践
实践如下: #include <iostream> #include <map> #include <string> #include <typeinfo&g ...
- docker-compose部署redis-cluster
node1-node6 1.到http://download.redis.io/redis-stable/redis.conf下载官方redis.conf文件 2.修改对应端口 # bind 127. ...
- 网页页头meta详解(科普知识)
1.Content-Type和Content-Language (显示字符集的设定) 说明:设定页面使用的字符集,用以说明主页制作所使用的文字已经语言,浏览器会根据此来调用相应的字符集显示page内 ...
- Jenkins+Harbor+Docker发布
使用Jenkins发布Docke 需要准备的,docker,jenkins,Harbor docker安装 安装依赖: # yum install -y yum-utils device-mapper ...
- http详解之post 2
-----------------------post请求示例----------------#请求行POST https://re.csdn.net/csdnbi HTTP/1.1 #请求头部开始H ...
- Java学习之==>集合体系(待续。。)
一.概述 Java的集合体系,本质上是一个陈放数据的容器,像之前学过的数组也是陈放数据的容器,但在 Java 中数组的长度是固定的,使用起来没那么方便.集合提供了更加强大的功能,使用起来也更方便和快捷 ...
- 转载-c++深拷贝和浅拷贝
转载自:https://blog.csdn.net/u010700335/article/details/39830425 C++中类的拷贝有两种:深拷贝,浅拷贝:当出现类的等号赋值时,即会调用拷贝函 ...