C++ /Python 将视频中的片段转为图片
- 配置OpenCV :项目名称->右击->属性
VC++目录 包含目录 放 ...\build\include ...\build\include\opencv ...\build\include\opencv2
库目录:...\\build\x64\vc14\lib (VS2015是vc14)
链接器->输入 附加依赖项: opencv_world330.lib
opencv_world330d.lib弹出错误的话:由于找不到opencv_world330d.dll,无法继续执行代码。 opencv_ffmpeg330_64.dll、opencv_world330.dll
opencv_world330d.dll放入C:\Windows\System32中 C++版本
#include <iostream>
#include <opencv2/opencv.hpp>
#include <vector> using namespace std;
using namespace cv; int main()
{
VideoCapture cap("test.mp4");
double fps = cap.get(CV_CAP_PROP_FPS);
int width = cap.get(CAP_PROP_FRAME_WIDTH);
int height = cap.get(CAP_PROP_FRAME_HEIGHT); cout << fps << endl;
cout << width << endl;
cout << height << endl; cap.set(0, 2 * 1000); //设置起始时间 单位ms
long pos = cap.get(CAP_PROP_POS_FRAMES);// 获得帧位置 int frameToStop = 120; // 设置帧数
bool isOpened = cap.isOpened();
int i = 0;
Mat frame;
string fileName;
char temp_file[5];
while (isOpened && pos <= frameToStop)
{
i = i + 1;
bool flag = cap.read(frame);
sprintf_s(temp_file, "%04d", i);
fileName = temp_file;
fileName = fileName + ".jpg";
cout << fileName << endl;
if (flag == true )
{
imwrite(fileName, frame);
pos = cap.get(CAP_PROP_POS_FRAMES);// 获得帧位置
waitKey(1);
}
else
{
break;
} }
cap.release();
cout << "end" << endl;
system("pause");
return 0; }Python版本
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt '''获取视频信息'''
cap = cv.VideoCapture('test.mp4') #加载视频
fps = cap.get(cv.CAP_PROP_FPS) # 获取帧率
width = int(cap.get(cv.CAP_PROP_FRAME_WIDTH)) # 获取宽度
height = int(cap.get(cv.CAP_PROP_FRAME_HEIGHT)) # 获取高度
print(fps,width,height) '''视频转图片'''
cap=cv.VideoCapture('test.mp4') #加载视频
cap.set(0, 3*1000)
isOpened=cap.isOpened()
i=0
while(isOpened):
i=i+1
flag,frame=cap.read()
fileName = '%03d'%i+".jpg"
print(fileName)
if flag == True :
cv.imwrite('%03d'%i+".jpg",frame) # 命名 图片 图片质量,此处文件名必须以图片格式结尾命名
cv.waitKey(1)
else:
break
cap.release()
print('end')
C++ /Python 将视频中的片段转为图片的更多相关文章
- python 从视频中提取图片,并保存在硬盘上
使用python的moviepy库来提取视频中的图片,按照视频每帧一个图片的方式来保存. extract images from video, than save them to disk from ...
- python 将列表中的字符串转为数字
本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...
- 使用 html2canvas 将页面中某一部分转为图片下载
今天在项目中遇到一个需求是将生成的二维码和一些背景作为海报,然后将海报以图片的形式下载 使用了 html2canvas 插件 import html2canvas from "html2c ...
- 为什么说 Python 是数据科学的发动机(一)发展历程(附视频中字)
为什么说 Python 是数据科学的发动机(一)发展历程(附视频中字) 在PyData Seattle 2017中,Jake Vanderplas介绍了Python的发展历程以及最新动态.在这里我们把 ...
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- 50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
目前计算机视觉(CV)与自然语言处理(NLP)及语音识别并列为人工智能三大热点方向,而计算机视觉中的对象检测(objectdetection)应用非常广泛,比如自动驾驶.视频监控.工业质检.医疗诊断等 ...
- Python opencv提取视频中的图片
作者:R语言和Python学堂链接:https://www.jianshu.com/p/e3c04d4fb5f3 这个函数就是本文要介绍的video2frames()函数,功能就是从视频中提取图片,名 ...
- python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框
最近因为要实现模板匹配,需要在视频中选中一个目标,然后框出(即作为模板),对其利用模板匹配的方法进行检测.于是需要首先选出视频中的一帧,但是在利用摄像头读视频的过程中我唯一能想到的方法就是: 1.在视 ...
- Python音视频开发:消除抖音短视频Logo和去电视台标
☞ ░ 前往老猿Python博文目录 ░ 一.引言 对于带Logo(如抖音Logo.电视台标)的视频,有三种方案进行Logo消除: 直接将对应区域用对应图像替换: 直接将对应区域模糊化: 通过变换将要 ...
随机推荐
- 第一天——编程语言与python
------------恢复内容开始------------ what's the python? python是一门编程语言,编程语言就是人用来和计算机沟通的语言,语言就是人与人,人与事物进行沟通的 ...
- ucore操作系统学习(七) ucore lab7同步互斥
1. ucore lab7介绍 ucore在前面的实验中实现了进程/线程机制,并在lab6中实现了抢占式的线程调度机制.基于中断的抢占式线程调度机制使得线程在执行的过程中随时可能被操作系统打断,被阻塞 ...
- Java安全之Weblogic 2016-0638分析
Java安全之Weblogic 2016-0638分析 文章首发先知:Java安全之Weblogic 2016-0638分析 0x00 前言 续上篇文的初探weblogic的T3协议漏洞,再谈CVE- ...
- Java学习日报7.29
package student;import java.util.*;public class student { Scanner sc=new Scanner(System.in); private ...
- Trick:如何去掉html标签点击时的蓝色边框
我们在用html标签时,如input.button.select,img标签时,点击标签经常出现一个蓝色的边框,这个边框真的很low,想要去掉怎么办 其实,css有样式可以设置一下,这个问题就轻松 ...
- SonarQube学习(三)- 项目代码扫描
一.前言 元旦三天假,两天半都在玩86版本DNF,不得不说,这个服真的粘度太高了,但是真的很良心. 说明: 注册账号上线100w点券,一身+15红字史诗装备以及+21强化新手武器.在线泡点一分钟888 ...
- git基础-git别名
Git 并不会在你输入部分命令时自动推断出你想要的命令. 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名. 这里有一些例子你可以试试: $ ...
- Spark sql 简单使用
一.认识Spark sql 1.什么是Sparksql? spark sql是spark的一个模块,主要用于进行结构化数据的处理,它提供的最核心抽象就是DataFrame. 2.SparkSQL的作用 ...
- NC65在日常开发中常用的代码写法
标题 NC65开发相关代码 版本 1.0.1 作者 walton 说明 收集NC在日常开发中常用的代码写法,示例展示 1.查询 1.1 通过BaseDAO查询结果集并转换 //通过BaseDAO进行查 ...
- 建立索引和创建视图(结合YGGL.sql)
一.请按要求对YGGL库建立相关索引 (1)使用create index 语句创建索引 1.对employees表中的员工部门号创建普通索引depart_ind. mysql> create i ...