Sequential image writing in a loop
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
JohnDylon
am 11 Jun. 2016
Kommentiert: Image Analyst
am 14 Jun. 2016
Hi,
I'm trying to develop a code simply reads frames from a video, processes the frames and then writes them back to an output video. My code in general works but the output video have some issues that I detected and couldn't figure out.
The problem occurs at the step of creating a video from processed frames. If my frames are named like 001.png, 002.png, etc. the following code calls all them in correct sequence, i.e. first 001.png, second 002.png, etc. The code is:
clc;
close all;
clear all;
workingDir1 = 'C:\Users\John\MATLAB\bin\Delete\';
workingDir2 = 'C:\Users\John\MATLAB\bin\Test_Grow2_Frames\';
imageNames1 = dir(fullfile(workingDir1,'*.png'));
imageNames1 = {imageNames1.name}';
imageNames2 = dir(fullfile(workingDir2,'*.png'));
imageNames2 = {imageNames2.name}';
for k = 1:length(imageNames1)
toread1=fullfile(workingDir1,imageNames1{k});
toread2=fullfile(workingDir2,imageNames2{k});
img1 = imread(toread1);
img2 = imread(toread2);
imshow([img1 img2]);
end
END OF CODE
In the code, 'C:\Users\John\MATLAB\bin\Delete\' folder contains images named as 1.png, 2.png, 3.png up to 329.png and 'C:\Users\John\MATLAB\bin\Test_Grow2_Frames\' folder contains images named as 001.png, 002.png, etc. up to 329.png.
The interesting part is here: When the for loop iterates
- k=1, toread1 has the value 1.png and toread2 has the value 001.png which is OK,
- k=2, toread1 has the value 10.png and toread2 has the value 002.png which is not OK for toread1 since it supposed to be 2.png,
- k=3, toread1 --> 100.png, toread2 --> 003.png,
- k=4, toread1 --> 101.png, toread2 --> 004.png.
So there is a something going on here, can anybody help on that?
BTW, I generate 1.png, 2.png type names with the code:
imwrite(RGB,['C:\Users\John\MATLAB\bin\Delete\', num2str(curr_frm_num), '.png']);
END OF CODE
If someone has an idea to generate 001.png type names, it is also appreciated.
Thanks,
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 11 Jun. 2016
I do this in my demo, which I've posted many times. I attach it here.
4 Kommentare
Image Analyst
am 14 Jun. 2016
If it sorts alphanumerically then that's right. This is a well known problem. See the FAQ: http://matlab.wikia.com/wiki/FAQ#How_do_I_sort_file_names_numerically.3F
Weitere Antworten (1)
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!