【发布时间】:2012-06-08 12:03:33
【问题描述】:
如何在我的 gui 中显示 avi 文件 (myVideo.avi)?
如果有帮助,我的 avi 视频中有 11 张图像由它们组成,我需要以无限循环的形式显示这 11 张图像(直到该图关闭)。
这是我尝试过的:
function [] = GUI_400()
hFig = figure;
hAxes = axes('Parent',hFig,'Units','pixels','Position',[362 242 424 359]);
movie('myVideo.avi','Parent',hAxes);
set(hAxes,'Visible','on');
end
这是我得到的:
谢谢!
@Amro,我试过了,我得到了错误:
Undefined function or method 'VideoReader' for input arguments of type 'char'.
所以我尝试了:
obj=mmreader('loading.avi');
a=read(obj);
frames=get(obj,'numberOfFrames');
for k = 1 : frames-1
I(k).cdata = a(:,:,:,k);
I(k).colormap = [];
end
vid = avireader(I);
sz = [vid.Height vid.Width];
mov = read(vid, [1 vid.NumberOfFrames]);
%# prepare GUI
p = get(0,'DefaultFigurePosition');
hFig = figure('Menubar','none', 'Resize','off', ...
'Position',[p(1:2) sz(2) sz(1)]);
%# play movie
movv = struct('cdata',squeeze(num2cell(mov,[1 2 3])), 'colormap',[]);
movie(hFig, movv, 999, vid.FrameRate);
但现在我得到了:
??? Initialization failed. (No combination of intermediate filters could be found to make the connection.)
Error in ==> mmreader.mmreader>mmreader.init at 423
obj.MMReaderImpl = audiovideo.mmreader(fullName);
Error in ==> mmreader.mmreader>mmreader.mmreader at 133
obj.init(fileName);
Error in ==> GUI_400 at 14
obj=mmreader('loading.avi');
我知道this link有解决办法
但是您能知道一个简单的解决方案吗?谢谢!
【问题讨论】:
-
有什么问题或错误?
-
@bdecaf,我更新了我的主题。谢谢!
-
所以没有错误?在我的 Matlab 电影版本中,不接受字符串作为第一个参数。你能和你的确认一下吗?
-
@bdecaf,我不认为电影的第一个参数有问题,matlab 没有告诉我这方面的信息,但我不确定。如果有帮助,我的 avi 视频有 11 张图像由它们组成,我需要在无限循环中显示这 11 张图像(直到该图关闭)。
-
在我看来,您使用的是非常旧版本的 Matlab。你能确认你有哪个版本吗?
标签: matlab user-interface avi