How to add image 'x' to even frames and one image 'y' to odd frames
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I have a video that we will call 'x' and some images that we will call 'output_cross_alfa' and 'output_cross_Nalfa'.
My goal is to make the sum of 'x' with 'output_cross_alfa' in the even frames, and in the odd frames the sum of 'x' is done with 'output_cross_Nalfa'. The final video should be:
frame1 = frame1 + output_cross_Nalfa;
frame2 = frame2 + output_cross_alfa;
frame3 = frame3 + output_cross_Nalfa;
frame4 = frame4 + output_cross_alfa;
......
To do this I used this code:
for ii = 1: 2: length (imageNames)
for kk = 2: 2: length (imageNames)
img1 = im2single (imread (fullfile (workingDir, 'images', imageNames {ii})));
image_2 = im2single (img1 + output_cross_alfa);
img2 = im2single (imread (fullfile (workingDir, 'images', imageNames {kk})));
image_1 = im2single (img2 + output_cross_Nalfa);
output = uint8 (image_par + image_par);
writeVideo (outputVideo, output);
end
end
But I only get screenshots in black and gray when representing it.
To represent it I use this:
shuttleAvi = VideoReader (fullfile (workingDir, 'shuttle_out.avi'));
ii = 1;
while hasFrame (shuttleAvi)
mov (ii) = (im2frame (readFrame (shuttleAvi)));
ii = ii + 1;
end
figure, imshow (mov (1) .cdata, 'Border', 'tight');
movie (mov, 1, shuttleAvi.FrameRate);
And I have no idea what the failure may be.
0 commentaires
Réponse acceptée
Prabhan Purwar
le 5 Mar 2020
Hi,
According to your description there doesn't seem any need for nested loops. Try making use of the following code:
outputVideo= VideoWriter('newfile.avi');
open(outputVideo);
for ii = 1: 2: length (imageNames)
kk=ii+1;
img1 = im2single (imread (fullfile (workingDir, 'images', imageNames {ii})));
image_2 = im2single (img1 + output_cross_alfa);
img2 = im2single (imread (fullfile (workingDir, 'images', imageNames {kk})));
image_1 = im2single (img2 + output_cross_Nalfa);
output = image_1;
writeVideo (outputVideo, output);
output = image_2;
writeVideo (outputVideo, output);
end
close(outputVideo);
Hope it helps.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Audio and Video Data dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!