Extracting Frames and resizing each frame
Afficher commentaires plus anciens
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);
figure;
c = 0; % counter
for iFrame = 1:10
c = c + 1;
subplot(4,5,c),
imshow(Y(:,:,iFrame));
title(['frame #', num2str(iFrame)]);
end
6 commentaires
Walter Roberson
le 15 Fév 2019
imresize
Iqra Saleem
le 15 Fév 2019
Walter Roberson
le 15 Fév 2019
when you see 1x1 dimension what is class() of that variable ?
Iqra Saleem
le 15 Fév 2019
Iqra Saleem
le 15 Fév 2019
Iqra Saleem
le 15 Fév 2019
Réponses (2)
KALYAN ACHARJYA
le 15 Fév 2019
Modifié(e) : madhan ravi
le 15 Fév 2019
15 commentaires
Iqra Saleem
le 15 Fév 2019
Iqra Saleem
le 15 Fév 2019
Walter Roberson
le 15 Fév 2019
You imwrite(iFrame) but iFrame is just your loop counter.
Please show size(Y), class(Y), min(Y(:)), max(Y(:))
Iqra Saleem
le 15 Fév 2019
Walter Roberson
le 15 Fév 2019
You should be imwrite(Y(:,:,iFrame), ....) not imwrite(iFrame, ...)
Iqra Saleem
le 15 Fév 2019
Walter Roberson
le 15 Fév 2019
Somewhere in your yuvRead.m file, on a line before the "function" line, you have an executable line. That executable line must be removed or commented out.
Iqra Saleem
le 16 Fév 2019
Walter Roberson
le 16 Fév 2019
get rid of the clear and close statements .
The only time you should ever have "clear all" is as part of a script that is intended to reset matlab to prepare for new work . In any situation in which do not intend to effectively quit and reenter matlab then you should not have a "clear all"
Iqra Saleem
le 16 Fév 2019
Walter Roberson
le 16 Fév 2019
Modifié(e) : Walter Roberson
le 16 Fév 2019
as I told you 9 hourss ago you need to imwrite Y(:,:,iFrame) not iFrame. Your iFrame variable is your image counter not the content of that image .
Iqra Saleem
le 16 Fév 2019
Walter Roberson
le 16 Fév 2019
That error message does not correspond to the code you show.
Iqra Saleem
le 17 Fév 2019
Walter Roberson
le 17 Fév 2019
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.
kousar majeed
le 14 Juin 2019
0 votes
how can i extract the frame and save like 1-1.jpg in the folder with the name frame folder
3 commentaires
Walter Roberson
le 14 Juin 2019
projectdir = 'directory_containing_the_videos';
outdir = 'directory_to_receive_frames';
dinfo = dir( fullfile(projectdir, '*.avi'));
videonames = fullfile(projectdir, {dinfo.name});
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);
end
clear vidObj
end
kousar majeed
le 14 Juin 2019
vidobj = VideoReader(thisfile);
giving me error in this line
kousar majeed
le 14 Juin 2019
clc;
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
mkdir(opFolder);
end
%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);
disp(progIndication);
numFramesWritten = numFramesWritten + 1;
end %end of 'for' loop
progIndication = sprintf('Wrote %d frames to folder "%s"',numFramesWritten, opFolder);
disp(progIndication);
%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 faces.now how can i extract the face using move command to load from frame folder and extract the face and save it into face folder=============
Catégories
En savoir plus sur Video Formats and Interfaces dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!