MATLAB объединяет два 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 ответ
Вот один из способов сделать это: так же, как вы читаете изображение в img
Вы можете прочитать второе изображение (из второго видео) в img2
, Затем вы можете создать комбинированное изображение из двух: imgCombined = [img ; img2];
который будет содержать первое изображение сверху и второе снизу (это будет работать, если оба изображения имеют одинаковую ширину, в противном случае вам нужно будет изменить размер / обрезать). Когда вы пишете в видео файл, используйте writeVideo(outputVideo,imgCombined)
,