Matlab小技巧 — 让图动起来! 在文章 YOLOv3 + Matlab Robotics ToolBox 实战 — 软包装药品的机器人分拣系统设计与仿真 最后的展示视频 软包装药品的机器人分拣系统设计与仿真中,使用到了将一组JPG格式的图片转换为MP4格式的视频,解决了Matlab中相邻连续Figure之前动画擦除失败的问题,觉得还比较有意思,因此记录下来。下面是详细介绍: 一、背景介绍 在前文提到的文章内容中,对于药品的转移过程,我想要达到的效果是药品随着末端执行器同步转移,虽然Matlab Robotics ToolBox中以关节角作为参数利用plot可以绘制动态的关节移动效果,但是当引入药品之后,由于药品是一个由六个独立平面组成的六面体,绘制需要利用到 hold on 这一语句,因此绘制出来的结果就是整个空间全是药品移动留下的轨迹,这样是不好的,因此我将每一个关节动作对应的Figure画面状态进行拆分,并将该画面保存为单帧图片,最后再将所有图片进行拼接从而制作出一个完美的动画。 二、开发平台 开发平台:MATLAB 三、制作过程 3.1、保存Figure 利用for循环,将每一帧图像绘制出来但是不显示,直接按序编号保存在文件夹中: savepath = ‘D:image’;%保存路径 for count = 1:100 h = figure;%将figure保存在h中 set(h,’Visible’,’off’);%将figure设为不显示,防止一直弹框 saveas(h,[savepath num2str(imgcount)],’jpg’); %… plot(…)%省略号写你想要画的图,比如v-t、s-t 图像之类的 %… clf; end 3.2、读取图片 假设文件夹中已经保存了这样一组连续编号的若干张图片:
在matlab中,我们可以通过下面的程序读取一张图片: inputpath = ‘D:image1.jpg’;%图片输入路径 frame = imread(inputpath); % 读取图片,放在变量frame中 但是我们我们需要的是读取很多张图片来合成视频欸,那该怎么办呢?因此我们需要稍微润色一下,得到下面的程序: inputpath = ‘D:image’;%图片输入路径 format = ‘.jpg’;%图片格式 pic=dir(inputpath,’*.jpg’);% 返回路径内容:文件名 for i=1:(length(pic)) frame = imread(strcat(inputpath, num2str(i), format)); % 读取图片,放在变量frame中 %…这里是你想要对每张图片的操作,比如反色、二值化之类的 end 上面的程序首先将图片路径拆分为输入文件夹路径inputpath和图片格式format,这样在for循环中再利用strcat对这两者再加上序号变量进行拼接得到完整的图片路径,再利用imread读取即可循环读入图片。而有的时候懒得去更改for循环的循环上限,因此利用 length(pic) 可以获得文件夹中的文件数目。 3.3、制作视频 在实现多幅图片导入之后,我们可以在for循环中执行制作视频的操作。Matlab中提供了这样一个函数:writeVideo,可以查看定义。我们对3.2节的程序稍作修改如下: inputpath = ‘D:image’;%图片输入路径 format = ‘.jpg’;%图片格式 pic=dir(inputpath,’*.jpg’);% 返回路径内容:文件名 WriterObj = VideoWriter(‘D:movie emp0.avi’); %合成视频目标文件路径 WriterObj.FrameRate = 10;%调整帧率,这个可以调整视频长短 for i=1:(length(pic)) frame = imread(strcat(inputpath, num2str(i), format)); % 读取图片,放在变量 writeVideo(WriterObj, frame);% frame存到变量WriteObj中 %…这里是你想要对每张图片的操作,比如反色、二值化之类的 end close(WriterObj);%关闭视频 通过这样的方法,我们便把读入的一系列图片合成为一个连续的视频,通过调整帧率我们还可以调整视频的时长,不过有一点不方便的是这个函数保存的视频格式为AVI格式,若是需要MP4格式的话,这里我使用的是格式工厂,虽然转了一手,但是也不是很麻烦。最后再放一下视频链接: 软包装药品的机器人分拣系统设计与仿真 。 四、更多 除了上面我记录的方法外,在全国大学生智能车竞赛老大 — 清华大学卓晴老师经营的 TsinghuaJoking 的 如何在推文里让你的曲线动起来? 一文中给出了使用matplotlib以及软件movgear制作出了GIF类型的动图,也挺有意思的,也可以学习一下^ v ^
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/40856.html