利用opencv给视频截图
视频截图,仅仅实现了给AVI格式的视频截取图像,以后可以扩展。这里面视频和图像输出均与代码在同一个文件夹下。如果要输出到其他文件夹下,需要手动改变路径。
#include "highgui.h"#include <iostream>
#include <windows.h>using namespace std;
using namespace cv;int main()
{CvCapture *capture; //视频捕获结构变量的定义capture=cvCaptureFromAVI("leslie_Red_DVD.avi"); //获取视频int count=cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT );// 视频文件中帧的总数long t=1; //时间int num=200; //定义截取的图像数目,此处为200张,可自由定义int kNum=count/num; //定义帧位置stringstream s; //定义输出图像名称缓冲区IplImage* imgOut; //输出图像变量while(kNum<count){cvSetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES, kNum); //定义帧位置IplImage *img=cvQueryFrame(capture); //从视频中获取一帧imgOut=cvCreateImage(cvGetSize(img),img->depth,img->nChannels); //初始化输出cvCopy(img,imgOut,NULL); //复制图像char time[20];SYSTEMTIME sys = {0};GetLocalTime(&sys);sprintf(time, "%4d%02d%02d%02d%02d%02d%03d星期%1d",sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute, sys.wSecond,sys.wMilliseconds,sys.wDayOfWeek); //t=(long)cvGetTickCount();s<<"result"<<time<<".jpg";//char* image_name;//sprintf(image_name, "%s%d%s", "image", t, ".jpg");//保存的图片名//cvSaveImage(image_name, img); //保存一帧图片cvSaveImage(s.str().c_str(),imgOut); //保存cvWaitKey(5); //等待s.str(""); //清空图像名称缓冲区cvReleaseImage(&imgOut); //释放图像内存kNum+=count/num; //帧递增}cvReleaseCapture(&capture); //释放视频获取结构变量的内存
}
1、关于cvGetCaptureProperty函数
该函数利用property_id属性来获取视频或者摄像头的一定属性值;函数原型为:
double cvGetCaptureProperty( CvCapture* capture, int property_id );
property_id的值主要利用到一下几个:
int cvSetCaptureProperty( CvCapture* capture, int property_id, double value );
capture为获取结构,property_id为属性(详见cvGetCaptureProperty函数),value为要设置的值。
利用opencv给视频截图相关推荐
- AI 质检学习报告——实践篇——第三步:python利用OpenCV打开摄像头截图后实现图片识字
AI 质检学习报告--实践篇--第一步:python利用OpenCV打开摄像头并截图 AI 质检学习报告--实践篇--第二步:实现图片识字 前边两篇实践已经分别实现了利用OpenCV打开摄像头并截图和 ...
- 【QT课程设计】五:部分内容修正、利用opencv读入视频并进行部分图像处理
文章目录 前置文章与导航索引 前言 错误修正 伽马变换数值问题 错误描述 错误修改过程 视频部分 布局设计 opencv的使用 opencv的编译&配置 打开视频 Qtimer简介 视频读取 ...
- 利用opencv改变视频长宽
#include <windows.h> #include "cv.h" #include "highgui.h" int main() {CvCa ...
- 【.net】利用FFmpeg获取视频截图
目标及工具 这里使用vb.net结合FFmpeg截取视频中的图片.本文使用的编程工具是Visual Studio Community 2022,这个版本是在官方下载的安装的纯免费使用,而且基本功能都可 ...
- OpenCV实现视频人脸检测
利用OpenCV实现视频人脸检测,包含眼部检测.首先,将人脸检测和眼部检测需要的模型文件haarcascade_eye.xml和haarcascade_frontalface_default.xml放 ...
- python 多帧 超分辨_利用python-opencv生成视频帧数控制,和常见错误总结
首先呢 利用opencv生成视频的例子相信网络上已经很多了.但是大多数例子都只是捕获一个摄像头就没了.但是在实际运用中会发现.因为涉及到图像处理,生成的视频要不就就是过快要不就是比实际时间长. 控制视 ...
- OpenCV将视频转存为一帧帧的图片(Python)
利用OpenCV将视频逐帧保存,代码如下. #coding=utf-8 import cv2 import ospath = 'video' video_list = os.listdir(path) ...
- Opencv读取视频、打开摄像头、保存视频和视频倒放
原文出处:https://blog.csdn.net/yang_xian521/article/details/7440190 看了这个觉得说得很对,说白了Opencv主要针对是图像处理的计算机视觉库 ...
- pythonopencv读取视频帧慢_利用python-opencv生成视频帧数控制,和常见错误总结
首先呢 利用opencv生成视频的例子相信网络上已经很多了.但是大多数例子都只是捕获一个摄像头就没了.但是在实际运用中会发现.因为涉及到图像处理,生成的视频要不就就是过快要不就是比实际时间长. 控制视 ...
最新文章
- 关于iOS10的适配
- 获取java返回的数据_java调用第三方接口,获取接口返回的数据。
- opencv图像处理总结
- OpenCV转换PyTorch分类模型并使用OpenCV Python启动
- 2021年四季度企业薪酬报告发布 38个核心城市平均薪酬首次超万
- 【机器视觉】 for算子
- 在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
- 瀑布流布局JavaScript实现
- mvc 404错误 php,java - springmvc 请求无法到达controller,出现404错误
- Python基础——continute与break(循环控制)
- 学习OO,实现的小跟堆代码
- 【运动学】基于matlab斜抛物体斜坡射程【含Matlab源码 980期】
- 试试54款开源服务器软件 (比较知名的软件大集合)
- Pillow图像几何变换
- opencv:图像的读取和显示
- 四、异常(高琪java300集+java从入门到精通笔记)
- matlab批量下载网页文件
- 记一个异常原因,QQ和微信可以正常使用,无法访问百度
- False Coin
- svn提示xxx文件已经过时