MATLAB结合了两个avi。一起

时间:2016-01-02 05:28:03

标签: matlab animation avi

我创造了两个avi。文件,它们具有相同的长度。 我想把它们组合在一个相同的背景上,一个在另一个在底部。 我用于其中一个动画的代码如下,另一个类似。 我有什么方法可以做到吗?

load Results.mat;
I = imread('hex08.jpg');
[rows,columns,numberOfColorChannels] = size(I);
if numberOfColorChannels >1
    I = I(:,:,2);
end
background = imresize(background, [rows,columns]);


figure(1);
hold on;
for i=1:500
    A=angle(i,:);

    J = imrotate(I,A,'crop');
    mask = J == 0;
    mask = bwareafilt(mask,4);
    J(mask) = background(mask);
    pause(0.01)
    imshow(J);
    imwrite(J,[num2str(i),'.png']);

end


imageNames = dir(fullfile('*.png'));
imageNames = {imageNames.name}';

outputVideo = VideoWriter(fullfile('hex08.avi'));
outputVideo.FrameRate = 15;
open(outputVideo)

for ii = 1:length(imageNames)
   img = imread(fullfile(imageNames{ii}));
   writeVideo(outputVideo,img)
end

close(outputVideo)

1 个答案:

答案 0 :(得分:1)

以下是一种方法: 就像您将图像读入img一样,您可以将第二张图像(从第二个视频)读入img2。然后,您可以创建两者的组合图像:imgCombined = [img ; img2];,其中包含顶部的第一个图像和底部的第二个图像(如果两个图像的宽度相同,这将起作用,否则您将需要调整大小/裁剪)。当您写入视频文件时,请使用writeVideo(outputVideo,imgCombined)