博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用MATLAB将照片合成视频或者GIF图片、以及Photoshop制作GIF图片
阅读量:5827 次
发布时间:2019-06-18

本文共 3113 字,大约阅读时间需要 10 分钟。

用MATLAB将照片合成视频或者GIF图片、以及Photoshop制作GIF图片

一、用MATLAB将照片合成视频(我使用的MATLAB是2015版本的)

(1)、你需要合成视频的图片。

        所有照片放在一个文件夹里面。因为是使用Matlab的dir函数读取照片,所以读取时,你要先设置好文件名:图片名称按照“001、002、003...”排列。否则图片显示顺序就会出错。

        如果图片是用matlab在循环里使用saveas(gca,[Path,num2str(i)],'jpg');自动保存的图片源的话。注意这里的文件名称是以变量i保存。也就是在保存图片时如果不足十位或者百位不会在前面的自动补零。此时就需要你自己重命名,当然几百张,几千张照片让你一个个重命名未免太惨。

  可以使用软件改名字或者保存图片的时候就设置好前置的0,也就是说如果你的图片总数有4位数,那么1000以前的数一定要补零,补足4位。

  1)使用matlab的话,就是用数字转为字符串就行

    

 

       2) 可以使用软件,小巧好用: 密码:f794。下载就直接可以使用。

              

        使用软件的时候会提醒下载新的版本,选择否,设置好之后执行修改之后会提醒更新,这时候点确定就行。

 

(2)、Matlab代码:

%制作视频

clear clc;close all;

tic;

srcDic = uigetdir('D:\MATLAB_WORKSPACE\Work_SAVE\picture\');%这里的地址就是你的图片所放的地址.

cd(srcDic);

allnames = struct2cell(dir('*.jpg'));

[k,len]=size(allnames);

aviobj = VideoWriter('我的第一个视频.avi');%设置视频名字.

%可以设置视频格式,mp4比较推荐,因为目前苹果系统只支持mp4。

%aviobj = VideoWriter('我的第一个视频.mp4','MPEG-4');%设置视频名字.

aviobj.FrameRate = 10;%这里设置你想要生成的视频的帧数.

open(aviobj)

for i = 1:len

    name = allnames{1,i};

    frame = imread(name);

    writeVideo(aviobj,frame);

end

close(aviobj)

toc;

(3)、Matlab运行之后生成的AVI格式的视频就存放在你的图片保存的文件夹里面。

 

/*********************************************************************************************/

二、用MATLAB制作GIF图片(我使用的MATLAB是2015版本的)

(1)、你需要需要合成视频的图片。

这里的要求和上面制作视频的要求一样,这里就不赘述了。

(2)、Matlab代码:

clear clc; close all;

tic;

Path='G:\图片源\图片 - 副本\';%这里要注意这个路径要先添加在Matlab的工作路径下,不然会出错。

%参数调整

filename= 'my_gif.gif'; %你的gif文件的名字

t1=0.5; t=0.5;%t1:第一张图暂停的时间,t其他时间间隔,用来控制播放速度,单位秒

ext = {'\*.jpeg', '\*.jpg', '\*.png', '\*.pgm', '\*.tig', '\*.bmp'};  d = [ ];

for i = 1:length(ext)

    d =[d; dir( [Path,ext{i}] ) ]; % cd:当前路径

end

str = {d.name};

if ~isempty(str)

    [Selection,ok] = listdlg('ListString',str,'name','Choose pictures','PromptString',...

        'Please choose pictures','SelectionMode','Multiple', 'ListSize',[400,200]);

else

    error('No picture find , add filename extension or change path.')

end

set(0,'defaultfigurecolor','w');

 

for i = 1:length(Selection)

    figure(i)

     imshow((imread(str{Selection(i)})),'InitialMagnification','fit')% Or :  d(Selection(i)).name == str{Selection}

     title(str(Selection(i)));

    frame=getframe(i);

    im=frame2im(frame);%制作gif文件,图像必须是index索引图像

    [I,map]=rgb2ind(im,256);

    k=i-0;

    if k==1

        imwrite(I,map,filename,'gif','Loopcount',inf,...

            'DelayTime',t1);%loopcount只是在i==1的时候才有用

    else

        imwrite(I,map,filename,'gif','WriteMode','append',...

            'DelayTime',t);%DelaylayTime用于设置gif文件的播放快慢

    end

end

toc;

(3)、这样产生的gif图片保存在你的Matlab的默认工作路径下,也就是你打开Matlab软件时,它默认的那个路径。不过图片你需要使用ie游览器打开才能动,或者用其他软件,比如PPT放映时。

 

/*********************************************************************************************/

三、Photoshop制作GIF图片。(我使用的Photoshop是Photoshop CS6)

如果你说你没有Matlab怎么办,没事!咱用Photoshop,使用Photoshop,你想把图片P成什么样,就能弄成什么样,不像Matlab那么冰冷。

咱一步一步来:

第一步:把你想合成的几张照片在Photoshop里打开(我用谢耳朵演示)

 

第二步:把几张照片拖到一个文件下

 

方便GIF图片显示顺序,可以利用图层名字,不容易弄混。

第三步:窗口-时间轴-创建时间轴

 

第四步:转换为帧动画之后复制出五帧,然后设置帧(因为我只有五张图片,你有几张图片就弄多少帧)

那个秒数就是每张图片显示的时间,可以自己设置,我设置的1秒。然后对每帧动画的图层进行调整,按空格键就可以预览。

 

第五步:不要直接保存,要储存为Web所用格式,循环设置为永久,可以播放看一下效果。之后就存储,然后保存,注意保存时图片名不要有中文不然会出错。

  

 

(3)、看一下效果:(我后来把显示时间改成0.5秒,看着好玩一点)

          

总的来说,Photoshop做GIF图片比Matlab要精细,适合数量少的,合成的GIF数量少,如果要求数量多,就只能使用Matlab循环不断生成不断生成。

转载于:https://www.cnblogs.com/enjong/p/7611764.html

你可能感兴趣的文章
.net excel利用NPOI导入oracle
查看>>
$_SERVER['SCRIPT_FLENAME']与__FILE__
查看>>
hive基本操作与应用
查看>>
html5纲要,细谈HTML 5新增的元素
查看>>
Android应用集成支付宝接口的简化
查看>>
[分享]Ubuntu12.04安装基础教程(图文)
查看>>
django 目录结构修改
查看>>
win8 关闭防火墙
查看>>
CSS——(2)与标准流盒模型
查看>>
C#中的Marshal
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
CentOS 7 装vim遇到的问题和解决方法
查看>>
JavaScript基础教程1-20160612
查看>>
ios xmpp demo
查看>>
python matplotlib 中文显示参数设置
查看>>