需求分析:

公司需要做鉴黄的业务,所以需要大量的图片资源,但是图片资源有限,所以只能对视频进行切割采集图片,目前应用市场上有的只能一次性对一个视频进行切割,如果有几百个视频,就需要分别切割几百次,刚好在学openCV,现学现卖,自己临时开发了一个可以同时切割一个目录下所有的视频的工具,可以在切割之前计算所有视频的总图片数量,还可以选择切割的图片数量

软件介绍:

运行环境:windows 64位操作系统

技术:OpenCV + c++,  用MFC 做了个简单界面 ,用MFC是因为简单,其实MFC已经过时了

使用场景:需要把视频切割成大量的图片资源的,例如目前的大数据,人工智能,图像分析等等都需要用到大量的图片资源,这个工具应该可以用得上

相对于其他视频切割软件的优势在于:可以一次性把一个文件夹下面的所有视频列表(或者文件夹列表,里面有视频)同时切割,而且可以选择切割的图片数量,然后均等切割

软件界面:

核心代码介绍:

解压函数

void unZip(string path, string path1, long number)
{vector<String> listPath = getFilePath(path);long allTotalFrame = 0;for (int i = 0; i < listPath.size(); i++) {VideoCapture cap;cap.open(listPath[i]);// 获取整视频帧数long totalFrame = cap.get(CV_CAP_PROP_FRAME_COUNT);allTotalFrame = allTotalFrame + totalFrame;cout << "第 " << i << " 个视频宗贞数=" << totalFrame << endl;}cout << "总视频宗贞数=" << allTotalFrame << endl;// 根据全部视频总帧数截取10000张图片,也就是每隔 allTotalFrame/10000 帧取一张int imgIndex = 0;for (int i = 0; i < listPath.size(); i++) {VideoCapture cap;cap.open(listPath[i]);Mat frame;cap >> frame;for (;;){Mat frame;cap >> frame;if (frame.empty()){break;}//char* imageSaveName = new char[200];//将图片的路径及名称输入到imageSaveName中string str = path1; // "F:\\test2\\";string res = str+ "\\" + to_string(imgIndex)+".jpg";cout << "index == " << imgIndex << endl;if (number == 0) {if (imgIndex % (int)(allTotalFrame / 10000) == 0) { //假如取10000张,就是每 allTotalFrame/10000 帧截取一张cout << "输出图片" << endl;imwrite(res, frame);}}else {if (imgIndex % (int)(allTotalFrame / number) == 0) { //假如取number张,就是每 allTotalFrame/number 帧截取一张cout << "输出图片" << endl;imwrite(res, frame);}}imgIndex++;}}
}

因为时间关系就不详细介绍源码了,想了解更多的可以下载源码,源码的运行需要配置opencv环境哈,我的前几篇博客有介绍怎么配置opencv环境

源代码下载地址:

(网盘下载地址)https://pan.baidu.com/s/1urrl2Xa6R4lRwbbKpBZGJg

(github下载地址)https://github.com/SSYSSK/VideoZIP (里面也包括.exe 安装包)

软件下载地址:https://pan.baidu.com/s/1oFNhTrBubVyq2ac4tRu6jA

OpenCV - 10 开发一个视频切割成图片的软件相关推荐

  1. opencv cv2.imwrite()将视频切割成图片保存失败 + 以及按秒切帧代码

    原因:文件的路径和文件名不能是中文的 代码 按秒切割视频成图片: # 视频切割成图片 import cv2 import glob import osdef video_to_frame(save_p ...

  2. python opencv PIL 视频分割成图片 图片合成为视频 修改图片大小(抗锯齿)

    Python代码将原有的视频分割成图片,我的例子是一帧一帧的分割 用python+opencv完成视频的分割 import cv2 #导入opencv模块 print(2) #测试是否运行 vc=cv ...

  3. 【ffmpeg裁剪视频faster rcnn自动检测 via】全自动实现ffmpeg将视频切割为图片帧,再使用faster rcnn将图片中的人检测出来,最后将检测结果转化为via可识别的csv格式

    目录 前言 一,ffmpeg 自动裁剪 1.1 目录结构 1.2 cutVideoToImage.sh 1.2 myVideo 1.3 myVideo15mins 1.5 myFrames 1.6 运 ...

  4. python 脚本将视频转化成图片 | python scripts to convert video to pictures

    python 脚本将视频转化成图片 | python scripts to convert video to pictures python video_to_images.py 运行时,修改输入.输 ...

  5. python将视频分割成图片

    使用python将视频分割成图片 python版本: 3.7.2 使用到的库:opencv (安装命令:pip install opencv-python) import cv2# 定义保存图片函数 ...

  6. 怎样将手机视频转换成图片?手机怎么把视频做成gif动图?

    怎样将手机视频转换成图片?一般在需要将视频转换成gif格式的图片时,需要在电脑上使用专业的视频处理软件进行操作,但是现在有很多视频素材是从手机上保存的,如果需要从手机上把视频转gif应该怎么操作呢?今 ...

  7. Android 10开发之 保存、读取图片

    Android 10开发之 保存.读取图片 概述 从Android 10(Q)开始,谷歌就开始修改了外部存储权限,叫做分区存储,分区存储可以分为两个目录,分别是 沙盒目录(App-specific d ...

  8. 用python把视频分解成图片

    # 用python把视频分解成图片 import cv2 # 读取一段视频 cap=cv2.VideoCapture("d:/1.mp4") # 用作计数 i=0 # 循环判断视频 ...

  9. 视频翻译成文字的软件有哪些?推荐几个软件给你

    有没有小伙伴特别喜欢在网络上搜索一些美食视频教程,毕竟我们能够直观的通过视频学会很多制作方法.不过并不是所有的视频都是有中文翻译的,有些视频可能是外文的字幕甚至没有字幕的情况,这个时候要怎么才能知道视 ...

  10. 开发一个简单的小学生数学测试软件

    前言 本文适用于未学指针的朋友 本人就是没学到指针的 题目 开发一个简单的小学生数学测试软件,能实现以下功能: (1)保存五个学生的学号及姓名,以及考试软件的登录密码. (2)学生根据登录密码登录到考 ...

最新文章

  1. 旷视孙剑博士提出LGD,训练速度提升51%,适用于目标检测的知识蒸馏
  2. HTML5实现手势屏幕解锁
  3. mysql5.6.28安装_mysql5.6.28源码安装
  4. 动态壁纸小程序(带流量主)源码
  5. 面向对象之信息传递为何是调用方法
  6. Jupyter Lab——使用tqdm.notebook.tqdm时没有出现进度条,提示“HBox(children=(FloatProgress……”
  7. 南京铁道学院计算机应用,南京铁道职业技术学院铁道交通运营管理专业
  8. java 获取拦截url,java – 从数据库或属性中获取Spring Security拦截URL
  9. 3Done第七课——马克杯设计
  10. QCA9377 QCA1023系列蓝牙WiFi二合一模块方案选型参考
  11. 金蝶KIS15.1专业版注册流程和企业认证流程
  12. Python学习第二课-----绘制股票K线图(不使用mpl_finance包)
  13. 【微积分】2.1一元函数微分
  14. 多个blockquote_换句话说:使用blockquote,cite和q元素
  15. 读《大型网站技术架构:核心原理与案例分析+李智慧》记一
  16. Android中对静态壁纸和动态壁纸原理深入理解
  17. 【闪亮的玻璃图标悬浮效果】
  18. Deinterlacer(影像解交错)概念与解析
  19. 浏览此博客者开年必时来运转,否极泰来
  20. 《Visual Basic.Net 循序渐进》详细目录

热门文章

  1. MacBook如何安装双系统?
  2. 求偏导c语言,求偏导是什么?有什么用法?请举例说明。
  3. echarts树图tree制作家谱教程
  4. Apache解析漏洞
  5. Apache2 Linux 的安装与介绍
  6. 咋让计算机名字改为办公用计算机,让电脑变成历史:三星DeX将三星S8变成“办公电脑”...
  7. 一文说清长安链ChainMaker同步模块
  8. windows睡眠和休眠的区别
  9. matlab 隐函数全微分,求隐函数的全微分
  10. Japanese Student Championship 2021