MATLAB Answers

Translated by

이 페이지의 내용은 영어에서 자동 번역되었습니다. 자동 번역 기능을 해제하려면 "<a class="turn_off_mt" href="#">여기</a>"를 클릭하십시오.


Extracting Frames and resizing each frame

Asked by Iqra Saleem on 15 Feb 2019
Latest activity Commented on by kousar majeed on 14 Jun 2019 at 16:51
Hy, i convert YUV video file to frames but now i want to change size of every frames , how can i do that?
My code is:
clc; clear; close all;
VideoSequence = 'sampleQCIF.yuv';
width = 176;
height = 144;
nframes = 300;
[Y,U,V] = yuvRead(VideoSequence, width, height, nframes);
c = 0; % counter
for iFrame = 1:10
c = c + 1;
title(['frame #', num2str(iFrame)]);


i already convert YUV video to frames but unable to open in laptop. any solution?
Name Size Bytes Class Attributes
RGB 1x1 1 uint8
columns 1x1 8 double
grayImage 1x1 1 uint8
rows 1x1 8 double
This is about class.
sorry, my problem is different.
I attached original Matlab code and also output.
This code extract frames from YUV video precisley, but when i save those frames in laptop folder,they are not opening.
kinfly check my attach code and output.

Sign in to comment.


2 Answers

Answer by KALYAN ACHARJYA on 15 Feb 2019
Edited by madhan ravi
on 15 Feb 2019

Frames are images use the following, read here imresize
For multiple frames, you can call those and do the same. Also similar question answer is available, please look here, still unable to solve it, let me know.


That error message does not correspond to the code you show.
oh sorry, now again check attachments.
Why did you remove the basefilename / fullfile code ? You are now specifying the name of a folder as the only output location. MATLAB will not be able to automatically figure out what file name to output to by guessing that you want to use the same output file name as the last file you input: you need to tell it the output file name.
I am not going to bother to type in the repaired code for you by reading your code off of your image. If you continue to have problems with this, post your code as code.

Sign in to comment.

Answer by kousar majeed on 14 Jun 2019 at 15:05

how can i extract the frame and save like 1-1.jpg in the folder with the name frame folder


projectdir = 'directory_containing_the_videos';
outdir = 'directory_to_receive_frames';
dinfo = dir( fullfile(projectdir, '*.avi'));
videonames = fullfile(projectdir, {});
numvideo = length(videonames);
for vidx = 1 : numvideo
thisfile = videonames{vidx};
vidobj = VideoReader(thisfile);
fidx = 0;
while hasFrame(vidobj)
fidx = fidx + 1;
vidFrame = readFrame(vidObj);
outname = fullfile(outdir, sprintf('%d-%d.jpg', vidx, fidx));
imwrite(vidFrame, outname);
clear vidObj
vidobj = VideoReader(thisfile);
giving me error in this line
close all;
clear all;
% assigning the name of sample avi file to a variable
filename = 'Chili.avi.mp4';
%reading a video file
mov = VideoReader(filename);
% Defining Output folder as 'Frames'
opFolder = fullfile(cd, 'Frames');
%if not existing
if ~exist(opFolder, 'dir')
%make directory & execute as indicated in opfolder variable
%getting no of frames
numFrames = mov.NumberOfFrames;
%setting current status of number of frames written to zero
numFramesWritten = 0;
%for loop to traverse & process from frame '1' to 'last' frames
for t = 1 : numFrames
currFrame = read(mov, t); %reading individual frames
opBaseFileName = sprintf('%3.3d.png', t);
opFullFileName = fullfile(opFolder, opBaseFileName);
imwrite(currFrame, opFullFileName, 'png'); %saving as 'png' file
%indicating the current progress of the file/frame written
progIndication = sprintf('Wrote frame %4d of %d.', t, numFrames);
numFramesWritten = numFramesWritten + 1;
end %end of 'for' loop
progIndication = sprintf('Wrote %d frames to folder "%s"',numFramesWritten, opFolder);
%End of the code
% make another folder with the name of Faces
mkdir Faces
===== upto here i run the video and it save in folder of frame. create another folder with the name of how can i extract the face using move command to load from frame folder and extract the face and save it into face folder=============

Sign in to comment.

Translated by