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!