downsample from image 360*640 to 180*320
2 views (last 30 days)
Show older comments
Andrea Gusmara
on 22 May 2020
Commented: Ameer Hamza
on 22 May 2020
hi to everyone , I would to ask two question . the first is place in the title , and i know that i'm going to lose data , but i need to. the image in question i frame in the code under
. the second is that i'm trying to execute this code , but somthing wrong append .
video1=VideoReader('Francesca-Michielin---No-Degree-Of-Separation-Italy-Live-at-Semi-Final-2.mp4');
video2=VideoReader('Jamala---1944-Ukraine-Live-at-Semi-Final-2-of-the-2016-Eurovision-Song-Contest.mp4');
videoOut=VideoWriter('provaMix.avi');
videoOut.FrameRate=video1.FrameRate;
open(videoOut)
frames=read(video1,[1 2316]);
for frame=frames
% eventualmente resize (downsampling) del frame
writeVideo(videoOut,frame);
end
thank so much
0 Comments
Accepted Answer
Ameer Hamza
on 22 May 2020
See imresize(): https://www.mathworks.com/help/releases/R2020a/matlab/ref/imresize.html. Use it with a scaling factor of 0.5;
frame_small = imresize(frame, 0.5)
For videoReader object, use readFrame() function to read a frame at a time, as shown in this example:: https://www.mathworks.com/help/releases/R2020a/matlab/ref/videoreader.html#busqe2j-1_1
0 Comments
More Answers (1)
Andrea Gusmara
on 22 May 2020
3 Comments
Ameer Hamza
on 22 May 2020
Your for loop is wrong. Write it like this
frames=read(video1,[1 2316]);
for idx=1:2316
% eventualmente resize (downsampling) del frame
writeVideo(videoOut,frames(:,:,:,i));
end
See Also
Categories
Find more on Audio and Video Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!