1. 配置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中
    2. C++版本

    3. #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 将视频中的片段转为图片的更多相关文章

  1. python 从视频中提取图片,并保存在硬盘上

    使用python的moviepy库来提取视频中的图片,按照视频每帧一个图片的方式来保存. extract images from video, than save them to disk from ...

  2. python 将列表中的字符串转为数字

    本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...

  3. 使用 html2canvas 将页面中某一部分转为图片下载

    今天在项目中遇到一个需求是将生成的二维码和一些背景作为海报,然后将海报以图片的形式下载 使用了 html2canvas  插件 import html2canvas from "html2c ...

  4. 为什么说 Python 是数据科学的发动机(一)发展历程(附视频中字)

    为什么说 Python 是数据科学的发动机(一)发展历程(附视频中字) 在PyData Seattle 2017中,Jake Vanderplas介绍了Python的发展历程以及最新动态.在这里我们把 ...

  5. python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字

    python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...

  6. 50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)

    目前计算机视觉(CV)与自然语言处理(NLP)及语音识别并列为人工智能三大热点方向,而计算机视觉中的对象检测(objectdetection)应用非常广泛,比如自动驾驶.视频监控.工业质检.医疗诊断等 ...

  7. Python opencv提取视频中的图片

    作者:R语言和Python学堂链接:https://www.jianshu.com/p/e3c04d4fb5f3 这个函数就是本文要介绍的video2frames()函数,功能就是从视频中提取图片,名 ...

  8. python+opencv选出视频中一帧再利用鼠标回调实现图像上画矩形框

    最近因为要实现模板匹配,需要在视频中选中一个目标,然后框出(即作为模板),对其利用模板匹配的方法进行检测.于是需要首先选出视频中的一帧,但是在利用摄像头读视频的过程中我唯一能想到的方法就是: 1.在视 ...

  9. Python音视频开发:消除抖音短视频Logo和去电视台标

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 对于带Logo(如抖音Logo.电视台标)的视频,有三种方案进行Logo消除: 直接将对应区域用对应图像替换: 直接将对应区域模糊化: 通过变换将要 ...

随机推荐

  1. Docker被替代 PodMan成为程序员新宠

  2. Windows下python+allure的下载、安装、配置与使用

    下载安装allure 1.Windows和mac均可选择从官网下载,下载地址: https://repo.maven.apache.org/maven2/io/qameta/allure/allure ...

  3. 【程序包管理】篇章2:rpm程序包来源合法和完整性验正

    来源合法性验正: 数字签名   私钥签名完整性    哈希 注意: 1.如果是网站下载的程序包的话,没有公钥,就无法进行来源合法性验证,所以最好使用系统自带的rpm程序包或去可靠的网站下载程序包.[如 ...

  4. Unity UI适配 之 GridLayoutGroup组件下的内容适配(进度条适配)

    好久没有更新博客了,蓝廋啊. 今天写一写关于GripLayoutGroup组件的屏幕适配问题,以在ARPG游戏中常用的经验条适配来举例子,以此来加深自己的记忆,以便在下次需要制作该功能时能够快速完成. ...

  5. 用python写注入漏洞的poc

    webug靶场一道简单的注入题 加点后报错 could not to the database You have an error in your SQL syntax; check the manu ...

  6. 160个Crackerme破解

    001: 第一个破解: 有两种登陆方式:序列号/名字和序列号,观察报错信息 两个报错信息,直接中文搜索字符: 第一种登陆方式报错为:sorry,xx 右键中文字符搜索,ctrl+f输入要搜索的字符,这 ...

  7. 为什么线程安全的List推荐使用CopyOnWriteArrayList,而不是Vector

    注:本系列文章中用到的jdk版本均为java8 相比很多同学在刚接触Java集合的时候,线程安全的List用的一定是Vector.但是现在用到的线程安全的List一般都会用CopyOnWriteArr ...

  8. 22. Generate Parentheses生成指定个括号

    生成指定个数的括号,这些括号可以相互包括,但是一对括号的格式不能乱(就是配对的一个括号的左括号要在左边,右括号要在右边) 思维就是从头递归的添加,弄清楚什么时候要添加左括号,什么时候添加右括号 有点像 ...

  9. 3. Longest Substring Without Repeating Characters寻找不重复的最大子串

    首先弄清楚Substring和Subsequence,前者是子串,要求连续,后者是子序列,可以不连续 public int lengthOfLongestSubstring(String s) { / ...

  10. Java学习日报10.2

    1 package random; 2 import java.util.*; 3 import java.math.*; 4 public class Com { 5 6 public static ...