culiuxia 发表于 2008-12-11 21:59

求教:如何用matlab将几张图片变成连续的动画

如何用matlab, 将E:\matlab\program2目录下命名为 1.jpg , 2.jpg, 3.jpg ...
图片变成连续的动画,网上有问的,就是没能用的答案,急啊

这是百度知道里合成视频的程序,但【im(:,:,:,i)=imread(strcat(num2str(i),'.jpg')); 】一直有问题啊,高手给解释下吧

clear; pic=dir('.\*.jpg');

%取文件的数量:num
a=size(pic); num=a(1);

for i=1:num
   im(:,:,:,i)=imread(strcat(num2str(i),'.jpg'));
   imshow(im(:,:,:,i)); M(i) = getframe;
end

movie2avi(M,'out.avi','FPS',1)%输出视频

[ 本帖最后由 ChaChing 于 2009-9-2 10:30 编辑 ]

sogooda 发表于 2008-12-11 22:59

回复 沙发 culiuxia 的帖子

检查一下pic和strcat(num2str(i),'.jpg')是不是你想要的先。

ch_j1985 发表于 2008-12-11 23:03

回复 板凳 zjgydxcbt 的帖子

请问具体报的什么错误?

culiuxia 发表于 2008-12-11 23:05

回复 5楼 ch_j1985 的帖子

??? Error: File: picture.m Line: 6 Column: 45
Unbalanced or unexpected parenthesis or bracket.

这个

ch_j1985 发表于 2008-12-11 23:14

回复 6楼 culiuxia 的帖子

2楼的程序没有报错,有警告但不影响

ChaChing 发表于 2008-12-12 11:27

楼主提供的程序, 的确如ch说的有警告, 且需要有Image Processing Toolbox (imshow)
我现在用的无Image工具箱, 参考如下亦可
dd=dir('*.jpg'); cc=struct2cell(dd); cc=sort(cc(1,:));
for k=1:length(cc), =imread(char(cc(k))); M(k)=im2frame(aa,mm); end
movie2avi(M,'ppp');
但在v6.5版是会报错, 而在v7.0版是有警告不会报错, 原因我猜有bug吧!

culiuxia 发表于 2008-12-12 12:43

回复 8楼 ChaChing 的帖子

Error in ==> picture at 9
movie2avi(M,'ppp');

不行哦,:handshake

culiuxia 发表于 2008-12-12 12:43

回复 5楼 ch_j1985 的帖子

但是没法运行

ChaChing 发表于 2008-12-12 13:36

回复 9楼 culiuxia 的帖子

楼主使用的版本?

culiuxia 发表于 2008-12-12 14:42

回复 11楼 ChaChing 的帖子

MATLAB R2008a
这个
是版本的影响吗

ChaChing 发表于 2008-12-12 15:00

回复 12楼 culiuxia 的帖子

I don't known !
在v6.5版是会报错, 而在v7.0版是有警告但不会报错!

ch_j1985 发表于 2008-12-12 22:05

回复 12楼 culiuxia 的帖子

我的也是MATLAB R2008a,没有报错

culiuxia 发表于 2008-12-14 16:39

我自己终于弄出来了,和给的是大同小异的
不过还是分享下吧,希望能对一些人有用

图片直接在编译的文件目录内
for n=1:15
A=imread(); %批量读入图片
imshow(A);
f(n) = getframe;
pause(0.1);
end

ch_j1985 发表于 2008-12-14 17:51

回复 15楼 culiuxia 的帖子

A=imread(); %批量读入图片
注意中英文字符
A=imread(); %批量读入图片
页: [1]
查看完整版本: 求教:如何用matlab将几张图片变成连续的动画