视频文件按帧抓取图像并保存
一.原材料:
win10,opencv3.0,vs2013,test.MP4。只需要配置好opencv的环境就好,3.0可以直接用MP4类型的视频数据。
二.实现功能:
1.显示视频的具体信息,帧数,帧率,分辨率等;
2.对视频进行逐帧抓取图像;
3.对图像尺寸进行变换--缩放,我电脑是AMD显卡无gpu加速,只能缩小图像,减少以后的训练时间;
4.将图像保存到特定的文件夹下。便于以后制作数据集。
三.代码实现:
<span style="font-size:14px;color:#000000;background-color: rgb(255, 255, 255);"></span><pre class="html" name="code">#include<cstring> <span style="color:#ff0000;">实现对视频进行按帧抓取图像并保存</span>
#include "cv.h"
#include "highgui.h"
#include"stdlib.h"using namespace std;int main()
{CvCapture *capture;capture = cvCreateFileCapture("6515_10.124.6.230_2010-12-08_12-19-23(1).mp4");assert(capture!=NULL); <span style="color:#ff0000;"> //使用断言对函数参数进行确认,“假设”不成立则中断。//显示视频信息--我的视频h576*w704,fps25,frame number15036
</span> int frameH = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);int frameW = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);int fps = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);int numFrames = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);printf("\tvideo height : %d\n\tvideo width : %d\n\tfps : %d\n\tframe numbers : %d\n", frameH, frameW, fps, numFrames);IplImage *frame=0; //初始化定义 int n = 0; //初始化char image_name[256]; //image_name的名字、类型、存放路径的字符串长度,小了可能会内存溢出中断while(1) {frame = cvQueryFrame(capture); //获取一帧图像sprintf(image_name,"%s%d%s","D:\\OPenCV\\images\\",++n,".jpg");//保存的文件地址、类型、名称,中文路径保存不了。IplImage*out = cvCreateImage(CvSize(frame->width / 2, frame->height / 2), frame->depth,frame->nChannels);cvPyrDown(frame,out,CV_GAUSSIAN_5x5); //下采样缩小图像cvSaveImage(image_name,out); //保存一帧图像cvReleaseImage(&out);if(n==15011)break; //共15011帧}cvReleaseCapture(&capture);frame = NULL; //cvReleaseImage()和cvCreateImage()相对应的。在程序中如果没有使用cvCreateImage()“创建”就不能“释放”。system("pause"); //是为了让输出结果在cmd停留,前提是有#include"stdlib.h"return 0;
}
四.常见问题:
报错:sprintf不安全请替换巴拉巴拉。。。 解决方法:视图>>其他窗口>>属性管理器>>Debug Win32 or Relesae Win32>>右键MicrosftCppWin32.user>>属性页>>C/C++>>预处理器>>预处理器定义>>编辑里面添加 _CRT_SECURE_NO_WARNINGS 保存即可 。
其他内存溢出,无图片产生等问题代码注释的很仔细了。
五.待解决问题:
指定区域的逐帧抓取,下一篇研究用这篇抓取到的图像制作caffe需要的leveldb型数据集。
视频文件按帧抓取图像并保存相关推荐
- android爬取视频播放地址,Android 视频中抓取图像 - MediaMetadataRetriever
最近在side project中遇到了需要从视频中抓取多张图片的需求.安卓已经提供了从视频获取预览图片的ThumbnailUtils, 但此类不能根据timestamp获取bitmap. 以下记录自己 ...
- 如何在线把网站html生成xml文件_快速抓取网站信息工具
网络信息抓取如今广泛运用于社会生活的各个领域.在接触网络信息抓取之前,大多数人会觉得这需要编程基础,也因此对信息抓取望而却步,但是随着技术的发展,诞生出了许多工具,借助这些工具我们编程小白也可以获取大 ...
- 机器视觉 | FPGA | 基于Camera Link的帧抓取和图像处理功能板卡——HawkEye-CL
HawkEye-CL Camera Link帧抓取和图像处理系统 HawkEye-CL 帧捕获和实时图像处理系统提供了支持最苛刻的视觉和成像应用所需的核心基础设施.HawkEye系列提供了许多选项来满 ...
- 淘宝的主图视频,怎么批量抓取、下载的?
主图视频,淘宝.天猫.阿里巴巴等平台,为了提升客户的购物体验,能让客户看清商品的各个细节和上身的效果,淘宝.天猫.阿里巴巴平台都一直推广商家采用主图视频来展示商品,客户也喜欢通过视频来观看商品的各个角 ...
- 使用ffmpeg处理 视频文件中帧间时间戳异常、关键帧间隔异常
2019独角兽企业重金招聘Python工程师标准>>> [原因分析] V网通的视频文件经过了编辑工具编辑 1.视频文件中帧间时间戳异常(理论两帧差在40毫秒左右,V网通的有11777 ...
- python下载电影视频_python爬虫:抓取下载电影文件,合并ts文件为完整视频
目标网站:https://www.88ys.cc/vod-play-id-58547-src-1-num-1.html 反贪风暴4 对电影进行分析 我们发现,电影是按片段一点点加载出来的,我们分别抓取 ...
- python日志保存为html文件,用 Python 抓取公号文章保存成 HTML
上次为大家介绍了如果用 Python 抓取公号文章并保存成 PDF 文件存储到本地.但用这种方式下载的 PDF 只有文字没有图片,所以只适用于没有图片或图片不重要的公众号,那如果我想要图片和文字下载下 ...
- python 爬取加密视频_使用Python抓取m3u8加密视频 续:获得index.m3u8 地址
之前写<使用Python抓取m3u8加密视频>笔记的原因,是自己有几个视频想保存,但对于m3u8, .ts 文件拼接不熟悉,就尝试写个脚本练手. 今天看了回复,有同学想知道如何从视频网站上 ...
- wireshark 抓ps 流_wireshark抓取rtp流保存为.264文件并播放
注:此文章含转载内容,如侵权,请联系我来删除: 在调试vlc播放器播放rtp时,由于出现卡顿,所以想把rtp流保存下来播放,看是否是rtp推的问题还是电脑解码问题.网上看到的类似文章,我都没成功,最后 ...
最新文章
- cactiez----监控windows主机 server 2008 r2
- [转]写好shell脚本的13个技巧
- 设计模式 - Composite
- PHP操作Redis常用技巧
- Learn day4 函数参数\变量\闭包\递归
- Linux学习之CentOS(三)----将Cent0S 7的网卡名称eno16777736改为eth0
- LeetCode 1704. 判断字符串的两半是否相似
- less编译工具koala(考拉)和rem的使用
- mysql net 指令_MySQL命令
- Python中Unicode字符串
- OpenCV:框选某一特定区域并保存到图片
- mysql key语句_mysql建表语句key的含义
- 《社会调查数据管理——基于Stata 14管理CGSS数据》一3.4 Stata的一些术语及使用通则...
- word文档打钩记录快捷键
- 快速上云(手把手教你把项目同步上云)
- 下拉刷新?我看好MaterialRefreshLayout!
- 软件项目管理——文档
- 第四节课 hadoop总结
- 微盛·企微管家杨明:未来企业微信生态能诞生中国的Salesforce
- python获取网页数据判断并提交_【python爬虫网页结构分析】判断数据是在html的静态网页还是在动态网页;找对URL;豆瓣;QQ音乐...
热门文章
- 支持M1和Intel:E3D三维模型AE插件 mac版(支持ae2022)
- javascript中声明数组
- GoJS去水印, v1.7 v1.8.29 两个go.js版本
- 如何设计大型游戏服务器架构? 1
- 计算机动画_3dmax的使用(七)
- Java实现迷宫城堡(强连通图的判定)
- 腾达ap设置说明_腾达(Tenda)F9路由器AP模式设置方法
- C#编程总结(十四)dynamic
- 计算机经历的四次历史变革,计算机经历的四代历史变革
- [附源码]计算机毕业设计JAVA企业记账系统