起因是刷到了视频链接: link
但是由于某些原因窝工不能使用Matlab于是打算用Mathematica复刻这个内容
第一期首先讲Mathematica的视频处理

压缩视频

导入原视频demo.mp4,直接导出为480p
电脑配置高且有耐心等的可以略过这一步

Export["C:\\Users\\compress.mp4",Import["C:\\Users\\demo.mp4"], RasterSize -> 480]

导入视频

控制导入类型为ImageList,后面所有的图像处理都是基于图像(Image)的,而使用列表(List)串连图像

sorce = Import["C:\\Users\\compress.mp4", "ImageList"]

处理视频

一些因为个人水平有限写出的奇葩代码,,
使用Part命令从List中提取单个元素。具体的写法就是

List_name[[i]]
选出List里面第i个元素(计数从1开始)

用process作为中间变量,取出一幅图片进行处理
用outtemp作为输出缓存,将处理后的图片保存到ImageList里面
前面两句新建出两个List类型的变量出来
循环处理,将outtemp和process合并起来

process = {EdgeDetect[sorce[[1]]]};
outtemp = process;
For[i = 2, i < Length[sorce] + 1, i++,process = {EdgeDetect[sorce[[i]]]};outtemp = Join[outtemp, process]]

导出视频

导出的时候可以直接写文件名到地址位置
帧速率需要自行设置,默认应该是15帧左右

Export["C:\\Users\\output.mp4", outtemp, FrameRate -> 30]

播放视频

首先将视频生成串流信号,然后控制开始播放
这个时候是看不到输出的,需要再通过动态展示当前帧才可以看到播放的视频

v = VideoStream["C:\\Users\\output.mp4"];
VideoPlay[v];
Dynamic[v["CurrentFrame"]]

一口气全做对

把所有代码连起来:
在mathematica里面语句结尾打上" ; "的话这一句的结果就不会输出啦,但是可以被下一句调用,这样会比较简洁

Export["C:\\Users\\YawnFun\\Desktop\\0713\\compress.mp4",Import["C:\\Users\\YawnFun\\Desktop\\0713\\demo.mp4"], RasterSize -> 480];
sorce = Import["C:\\Users\\YawnFun\\Desktop\\0713\\compress.mp4", "ImageList"];
process = {EdgeDetect[sorce[[1]]]};
outtemp = process;
For[i = 2, i < Length[sorce] + 1, i++,process = {EdgeDetect[sorce[[i]]]};outtemp = Join[outtemp, process]];
Export["C:\\Users\\YawnFun\\Desktop\\0713\\output.mp4", outtemp, FrameRate -> 30];
v = VideoStream["C:\\Users\\YawnFun\\Desktop\\0713\\output.mp4"];
VideoPlay[v];
Dynamic[v["CurrentFrame"]]

工程和素材放在阿里云盘啦,有需要的朋友欢迎下载~
链接: 工程和素材下载

Mathematica视频处理实例-边缘检测相关推荐

  1. html背景mov,科技常识:html5自动播放mov格式视频的实例代码

    今天小编跟大家讲解下有关html5自动播放mov格式视频的实例代码 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关html5自动播放mov格式视频的实例代码 的相关资料,希望小伙伴们看了有 ...

  2. html怎样自动播放视频,html5自动播放mov格式视频的实例代码

    这个不算啥新奇吧?但还是记录一下. 这个问题应该这么看. 1.首先网站要支持.MOV格式文件 就是说,网站要能识别.MOV格式文件. 如何识别?设置MIME类型.以IIS为例.除了可以在IIS界面上直 ...

  3. OpenCV学习 4:摄像头视频读写与边缘检测

    原创文章,欢迎转载,转载请注明出处 想实现人脸识别,车辆识别,车牌识别.一般我们可不是读硬盘里面的视频文件的,都是直接从摄像头读取视频流然后直接识别的.所以读取摄像头的视频流这是基础...OpenCV ...

  4. python运用实例视频_Python实例教学

    Python实例教学APP是非常值得安利的一款手机Python学习工具,大家都可以通过这款软件来获得更多丰富的教材视频,帮助用户更好的理解课程学习的内容,有想要学习Python的用户都可以来七度网免费 ...

  5. 小程序点击事件插入激励视频广告实例(小白应该也能懂)

    鼓捣了一段时间,终于算是明白了,现在想想确实很简单,毕竟只是函数与函数调用的问题. 首先设置需要定义广告函数,在网上看到的很多都在把他直接加在了onload函数里面,但是对于小白来言,处理不好与其他之 ...

  6. 使用c# .net core开发国标gb28181 sip +流媒体服务完成视频监控实例教程 亲身完美体验过程...

    目前使用C# .net core 来实现国标gb28181标准的摄像头播放.ptz云台控制.视频回放等视频监控功能,项目可运行于linux/docker/.net core环境,也是当前非常罕有的能做 ...

  7. WebRTC学习06----1对1视频通信实例

    简单的直播系统 信令服务器的搭建 // 客户端的信令消息 * join 加入房间 * leave 离开房间 * message 端到端消息* Offer 消息 (获得本机的描述信息 SDP形式)* A ...

  8. 前端 mediaRecorder 录制视频源代码实例,和本地播放器无法定位进度条问题分析和解决

    问题 mediaRecorder 本质上录制的是webm 当我们使用getUserMedia.MediaRecorder等API生成的webm视频时,会发现最终的webm是无法拖动进度条的 解决方案 ...

  9. Android端海康监控视频调用-实例

    一. 开发环境 1. 操作系统:windows7(X64) 2. 开发工具:eclipse adt Build: v22.2.1-833290 JDK7 android SDK 3. 客户端设备版本: ...

最新文章

  1. jQuery对象插件封装步骤
  2. Mac 每次都要执行source ~/.bash_profile 配置的环境变量才生效
  3. 深入理解java虚拟机_深入理解Java类加载
  4. 虚拟服务器怎么搭建php,怎样搭建Apache+MySQL+PHP服务器
  5. Wireshark实战分析值DNS协议(二)
  6. 机器学习算法——GBDT
  7. 海量数据和高并发下的 Redis 业务优化实践
  8. html5 抓取网页数据,从网页抓取数据的一般方法
  9. 网站被黑了不要慌,4招教你如何破解!网站被黑的10大原因
  10. window操作系统快捷键
  11. VS中C++解决方案中多个项目文件的引用
  12. 电脑C盘满了怎么办?教您3招快速释放C盘空间
  13. 仓储室内定位系统—企业物流的“数字化”转型
  14. 有一台服务器可以做哪些很酷的事情·2
  15. html添加外链图片代码,web 外链图片 403 解决方案(http referrer)
  16. css3 动画之 2D旋转 3D旋转 放大
  17. OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)
  18. CVPR 二十年,影响力最大的 10 篇论文
  19. 用DOCKER安装及使用SSCHA
  20. Elixir - comprehensions

热门文章

  1. Keras 搭建图片分类 CNN (卷积神经网络)
  2. docker修练之容器内的脚本
  3. 为什么薄膜干涉的厚度要很小_薄膜厚度对薄膜干涉现象的影响及其物理意义
  4. 小飞鱼通达OA二开 使用微信企业号做一个用户自助重设密码的开发(图文)
  5. win10 计划 定时关机
  6. 智能手环功能模块设计_智能手环设计方案
  7. python005 -- from inport 作用
  8. Excel2010对xlsx和xls文件电脑无法访问情况
  9. 学生学不好数学 关键在自己而不在老师
  10. 38.报数(C++实现)