Extracting Frames and resizing each frame
显示 更早的评论
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 个评论
Walter Roberson
2019-2-15
imresize
Iqra Saleem
2019-2-15
Walter Roberson
2019-2-15
when you see 1x1 dimension what is class() of that variable ?
Iqra Saleem
2019-2-15
Iqra Saleem
2019-2-15
Iqra Saleem
2019-2-15
回答(2 个)
KALYAN ACHARJYA
2019-2-15
编辑:madhan ravi
2019-2-15
15 个评论
Iqra Saleem
2019-2-15
Iqra Saleem
2019-2-15
Walter Roberson
2019-2-15
You imwrite(iFrame) but iFrame is just your loop counter.
Please show size(Y), class(Y), min(Y(:)), max(Y(:))
Iqra Saleem
2019-2-15
Walter Roberson
2019-2-15
You should be imwrite(Y(:,:,iFrame), ....) not imwrite(iFrame, ...)
Iqra Saleem
2019-2-15
Walter Roberson
2019-2-15
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
2019-2-16
Walter Roberson
2019-2-16
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
2019-2-16
Walter Roberson
2019-2-16
编辑:Walter Roberson
2019-2-16
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
2019-2-16
Walter Roberson
2019-2-16
That error message does not correspond to the code you show.
Iqra Saleem
2019-2-17
Walter Roberson
2019-2-17
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
2019-6-14
0 个投票
how can i extract the frame and save like 1-1.jpg in the folder with the name frame folder
3 个评论
Walter Roberson
2019-6-14
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
2019-6-14
vidobj = VideoReader(thisfile);
giving me error in this line
kousar majeed
2019-6-14
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=============
类别
在 帮助中心 和 File Exchange 中查找有关 Video Formats and Interfaces 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!