OpenCV - 10 开发一个视频切割成图片的软件
需求分析:
公司需要做鉴黄的业务,所以需要大量的图片资源,但是图片资源有限,所以只能对视频进行切割采集图片,目前应用市场上有的只能一次性对一个视频进行切割,如果有几百个视频,就需要分别切割几百次,刚好在学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 开发一个视频切割成图片的软件相关推荐
- opencv cv2.imwrite()将视频切割成图片保存失败 + 以及按秒切帧代码
原因:文件的路径和文件名不能是中文的 代码 按秒切割视频成图片: # 视频切割成图片 import cv2 import glob import osdef video_to_frame(save_p ...
- python opencv PIL 视频分割成图片 图片合成为视频 修改图片大小(抗锯齿)
Python代码将原有的视频分割成图片,我的例子是一帧一帧的分割 用python+opencv完成视频的分割 import cv2 #导入opencv模块 print(2) #测试是否运行 vc=cv ...
- 【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 运 ...
- python 脚本将视频转化成图片 | python scripts to convert video to pictures
python 脚本将视频转化成图片 | python scripts to convert video to pictures python video_to_images.py 运行时,修改输入.输 ...
- python将视频分割成图片
使用python将视频分割成图片 python版本: 3.7.2 使用到的库:opencv (安装命令:pip install opencv-python) import cv2# 定义保存图片函数 ...
- 怎样将手机视频转换成图片?手机怎么把视频做成gif动图?
怎样将手机视频转换成图片?一般在需要将视频转换成gif格式的图片时,需要在电脑上使用专业的视频处理软件进行操作,但是现在有很多视频素材是从手机上保存的,如果需要从手机上把视频转gif应该怎么操作呢?今 ...
- Android 10开发之 保存、读取图片
Android 10开发之 保存.读取图片 概述 从Android 10(Q)开始,谷歌就开始修改了外部存储权限,叫做分区存储,分区存储可以分为两个目录,分别是 沙盒目录(App-specific d ...
- 用python把视频分解成图片
# 用python把视频分解成图片 import cv2 # 读取一段视频 cap=cv2.VideoCapture("d:/1.mp4") # 用作计数 i=0 # 循环判断视频 ...
- 视频翻译成文字的软件有哪些?推荐几个软件给你
有没有小伙伴特别喜欢在网络上搜索一些美食视频教程,毕竟我们能够直观的通过视频学会很多制作方法.不过并不是所有的视频都是有中文翻译的,有些视频可能是外文的字幕甚至没有字幕的情况,这个时候要怎么才能知道视 ...
- 开发一个简单的小学生数学测试软件
前言 本文适用于未学指针的朋友 本人就是没学到指针的 题目 开发一个简单的小学生数学测试软件,能实现以下功能: (1)保存五个学生的学号及姓名,以及考试软件的登录密码. (2)学生根据登录密码登录到考 ...
最新文章
- 旷视孙剑博士提出LGD,训练速度提升51%,适用于目标检测的知识蒸馏
- HTML5实现手势屏幕解锁
- mysql5.6.28安装_mysql5.6.28源码安装
- 动态壁纸小程序(带流量主)源码
- 面向对象之信息传递为何是调用方法
- Jupyter Lab——使用tqdm.notebook.tqdm时没有出现进度条,提示“HBox(children=(FloatProgress……”
- 南京铁道学院计算机应用,南京铁道职业技术学院铁道交通运营管理专业
- java 获取拦截url,java – 从数据库或属性中获取Spring Security拦截URL
- 3Done第七课——马克杯设计
- QCA9377 QCA1023系列蓝牙WiFi二合一模块方案选型参考
- 金蝶KIS15.1专业版注册流程和企业认证流程
- Python学习第二课-----绘制股票K线图(不使用mpl_finance包)
- 【微积分】2.1一元函数微分
- 多个blockquote_换句话说:使用blockquote,cite和q元素
- 读《大型网站技术架构:核心原理与案例分析+李智慧》记一
- Android中对静态壁纸和动态壁纸原理深入理解
- 【闪亮的玻璃图标悬浮效果】
- Deinterlacer(影像解交错)概念与解析
- 浏览此博客者开年必时来运转,否极泰来
- 《Visual Basic.Net 循序渐进》详细目录