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),

Другие вопросы по тегам