필터 지우기
필터 지우기

Using images in a for loop

조회 수: 1 (최근 30일)
Sneheet
Sneheet 2014년 1월 31일
댓글: Image Analyst 2014년 2월 1일
I've split a video into frames and written them to my disk individually. Now I need to find the difference between 2 consecutive frames. How do I call those images in he loop? The images are saved as Frame 0001.png, Frame 0002.png....etc

채택된 답변

Walter Roberson
Walter Roberson 2014년 1월 31일

추가 답변 (1개)

Image Analyst
Image Analyst 2014년 1월 31일
I do that in my demo. Though I do the differencing as the frames are read in. In the latter half of the demo, after I've written out individual frames to individual files, I read in individual frames back in. You could of course switch the subtraction step to there if you want. See attachment (below in blue text).
  댓글 수: 5
Shivaputra Narke
Shivaputra Narke 2014년 2월 1일
Go to matlab help and search for imwrite. If you are new to Matlab you can use Matlab help.
Image Analyst
Image Analyst 2014년 2월 1일
It's right there in the code. Take another look:
% Construct an output image file name.
outputBaseFileName = sprintf('Frame %4.4d.png', frame);
outputFullFileName = fullfile(outputFolder, outputBaseFileName);
% Extract the image with the text "burned into" it.
frameWithText = getframe(gca);
% frameWithText.cdata is the image with the text
% actually written into the pixel values.
% Write it out to disk.
imwrite(frameWithText.cdata, outputFullFileName, 'png');
You can make outputFolder whatever you want. For example I did this:
% Make up a special new output subfolder for all the separate
% movie frames that we're going to extract and save to disk.
% (Don't worry - windows can handle forward slashes in the folder name.)
folder = pwd; % Make it a subfolder of the folder where this m-file lives.
outputFolder = sprintf('%s/Movie Frames from %s', folder, baseFileName);
% Create the folder if it doesn't exist already.
if ~exist(outputFolder, 'dir')
mkdir(outputFolder);
end
But you could just replace that with your own folder:
outputFolder = 'd:\Narke\Images'; % Or whatever.
% Create the folder if it doesn't exist already.
if ~exist(outputFolder, 'dir')
mkdir(outputFolder);
end
If it's just certain frames, you can set outputFolder on a frame by frame basis inside the loop if you wanted to vary it by frame number or some other condition/criteria.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Convert Image Type에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by