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