Sequential image writing in a loop
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
JohnDylon
el 11 de Jun. de 2016
Comentada: Image Analyst
el 14 de Jun. de 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 comentarios
Respuesta aceptada
Image Analyst
el 11 de Jun. de 2016
I do this in my demo, which I've posted many times. I attach it here.
4 comentarios
Image Analyst
el 14 de Jun. de 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
Más respuestas (1)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!