Extracting Frames and resizing each frame
Mostrar comentarios más antiguos
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 comentarios
Walter Roberson
el 15 de Feb. de 2019
imresize
Iqra Saleem
el 15 de Feb. de 2019
Walter Roberson
el 15 de Feb. de 2019
when you see 1x1 dimension what is class() of that variable ?
Iqra Saleem
el 15 de Feb. de 2019
Iqra Saleem
el 15 de Feb. de 2019
Iqra Saleem
el 15 de Feb. de 2019
Respuestas (2)
KALYAN ACHARJYA
el 15 de Feb. de 2019
Editada: madhan ravi
el 15 de Feb. de 2019
15 comentarios
Iqra Saleem
el 15 de Feb. de 2019
Iqra Saleem
el 15 de Feb. de 2019
Walter Roberson
el 15 de Feb. de 2019
You imwrite(iFrame) but iFrame is just your loop counter.
Please show size(Y), class(Y), min(Y(:)), max(Y(:))
Iqra Saleem
el 15 de Feb. de 2019
Walter Roberson
el 15 de Feb. de 2019
You should be imwrite(Y(:,:,iFrame), ....) not imwrite(iFrame, ...)
Iqra Saleem
el 15 de Feb. de 2019
Walter Roberson
el 15 de Feb. de 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
el 16 de Feb. de 2019
Walter Roberson
el 16 de Feb. de 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
el 16 de Feb. de 2019
Walter Roberson
el 16 de Feb. de 2019
Editada: Walter Roberson
el 16 de Feb. de 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
el 16 de Feb. de 2019
Walter Roberson
el 16 de Feb. de 2019
That error message does not correspond to the code you show.
Iqra Saleem
el 17 de Feb. de 2019
Walter Roberson
el 17 de Feb. de 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
el 14 de Jun. de 2019
0 votos
how can i extract the frame and save like 1-1.jpg in the folder with the name frame folder
3 comentarios
Walter Roberson
el 14 de Jun. de 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
el 14 de Jun. de 2019
vidobj = VideoReader(thisfile);
giving me error in this line
kousar majeed
el 14 de Jun. de 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=============
Categorías
Más información sobre Video Formats and Interfaces en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!