matlab jpg合成gif,用MATLAB将照片合成视频或者GIF图片、以及Photoshop制作GIF图片
用MATLAB將照片合成視頻或者GIF圖片、以及Photoshop制作GIF圖片
一、用MATLAB將照片合成視頻(我使用的MATLAB是2015版本的)
(1)、你需要需要合成視頻的圖片。
所有照片放在一個(gè)文件夾里面因?yàn)槭鞘褂肕atlab的dir函數(shù)讀取照片,所以讀取時(shí),你要先設(shè)置好文件名:圖片名稱按照“001、002、003...”排列。否則圖片顯示順序就會出錯(cuò)。
如果圖片是用matlab在循環(huán)里使用saveas(gca,[Path,num2str(i)],‘jpg‘);自動保存的圖片源的話。注意這里的文件名稱是以變量i保存。也就是在保存圖片時(shí)如果不足十位或者百位不會在前面的自動補(bǔ)零。此時(shí)就需要你自己重命名,當(dāng)然幾百張,幾千張照片讓你一個(gè)個(gè)重命名未免太慘。
使用軟件的時(shí)候會提醒下載新的版本,選擇否,設(shè)置好之后執(zhí)行修改之后會提醒更新,這時(shí)候點(diǎn)確定就行。
(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(‘我的第一個(gè)視頻.avi‘);%設(shè)置視頻名字.
aviobj.FrameRate = 10;%這里設(shè)置你想要生成的視頻的幀數(shù).
open(aviobj)
for i = 1:len
name = allnames{1,i};
frame = imread(name);
writeVideo(aviobj,frame);
end
close(aviobj)
toc;
(3)、Matlab運(yùn)行之后生成的AVI格式的視頻就存放在你的圖片保存的文件夾里面。
/*********************************************************************************************/
二、用MATLAB制作GIF圖片(我使用的MATLAB是2015版本的)
(1)、你需要需要合成視頻的圖片。
這里的要求和上面制作視頻的要求一樣,這里就不贅述了。
(2)、Matlab代碼:
clear clc; close all;
tic;
Path=‘G:\圖片源\圖片 - 副本\‘;%這里要注意這個(gè)路徑要先添加在Matlab的工作路徑下,不然會出錯(cuò)。
%參數(shù)調(diào)整
filename= ‘my_gif.gif‘; %你的gif文件的名字
t1=0.5; t=0.5;%t1:第一張圖暫停的時(shí)間,t其他時(shí)間間隔,用來控制播放速度,單位秒
ext = {‘\*.jpeg‘, ‘\*.jpg‘, ‘\*.png‘, ‘\*.pgm‘, ‘\*.tig‘, ‘\*.bmp‘};? d = [ ];
for i = 1:length(ext)
d =[d; dir( [Path,ext{i}] ) ]; % cd:當(dāng)前路徑
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的時(shí)候才有用
else
imwrite(I,map,filename,‘gif‘,‘WriteMode‘,‘a(chǎn)ppend‘,...
‘DelayTime‘,t);%DelaylayTime用于設(shè)置gif文件的播放快慢
end
end
toc;
(3)、這樣產(chǎn)生的gif圖片保存在你的Matlab的默認(rèn)工作路徑下,也就是你打開Matlab軟件時(shí),它默認(rèn)的那個(gè)路徑。不過圖片你需要使用ie游覽器打開才能動,或者用其他軟件,比如PPT放映時(shí)。
/*********************************************************************************************/
三、Photoshop制作GIF圖片。(我使用的Photoshop是Photoshop CS6)
如果你說你沒有Matlab怎么辦,沒事!咱用Photoshop,使用Photoshop,你想把圖片P成什么樣,就能弄成什么樣,不像Matlab那么冰冷。
咱一步一步來:
第一步:把你想合成的幾張照片在Photoshop里打開(我用謝耳朵演示)
第二步:把幾張照片拖到一個(gè)文件下
方便GIF圖片顯示順序,可以利用圖層名字,不容易弄混。
第三步:窗口-時(shí)間軸-創(chuàng)建時(shí)間軸
第四步:轉(zhuǎn)換為幀動畫之后復(fù)制出五幀,然后設(shè)置幀(因?yàn)槲抑挥形鍙垐D片,你有幾張圖片就弄多少幀)
那個(gè)秒數(shù)就是每張圖片顯示的時(shí)間,可以自己設(shè)置,我設(shè)置的1秒。然后對每幀動畫的圖層進(jìn)行調(diào)整,按空格鍵就可以預(yù)覽。
第五步:不要直接保存,要儲存為Web所用格式,循環(huán)設(shè)置為永久,可以播放看一下效果。之后就存儲,然后保存,注意保存時(shí)圖片名不要有中文不然會出錯(cuò)。
(3)、看一下效果:(我后來把顯示時(shí)間改成0.5秒,看著好玩一點(diǎn))
總的來說,Photoshop做GIF圖片比Matlab要精細(xì),適合數(shù)量少的,合成的GIF數(shù)量少,如果要求數(shù)量多,就只能使用Matlab循環(huán)不斷生成不斷生成。
原文:http://www.cnblogs.com/enjong/p/7611764.html
總結(jié)
以上是生活随笔為你收集整理的matlab jpg合成gif,用MATLAB将照片合成视频或者GIF图片、以及Photoshop制作GIF图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Photoshop数码艺术照片合成处理视
- 下一篇: matlab 眼镜蛇机动壁纸制作