我成功地为图像添加了一条水平线。我希望线条开始向下移动,同时删除前一行。最后我想将这部电影保存为avi格式
这是我的代码
A=imread('IMG_0628.JPG');
B=A(:,:,2);
for k=1:50:801
imshow(B), hold on
plot([1,597],[k,k])
N(k)=getframe
end
在显示动画时,我将在命令窗口中显示以下内容
N =
cdata: [400x299x3 uint8]
colormap: []
N =
1x51 struct array with fields:
cdata
colormap
N =
1x101 struct array with fields:
cdata
colormap
N =
1x151 struct array with fields:
cdata
colormap
尝试通过movie(N)
命令运行影片时出现以下错误
??? Error using ==> movie
Movie contains uninitialized frames
有没有更好的方法来增强我的代码并实现我的动画
答案 0 :(得分:0)
两件事:
绘制线条时取回手柄,然后删除getframe后的手柄,并确保电影的帧顺序编号(现在每50帧有一个非空帧):
A=imread('IMG_0628.JPG');
B=A(:,:,2);
imshow(B); hold on;
counter = 1;
for k=1:50:801
linehandle = plot([1,597],[k,k]);
N(counter)=getframe;
counter = counter + 1;
delete(linehandle);
end