Verfasst am: 27.07.2014, 11:27
Titel: Bilderauswahl anhand der Aufnahmezeit
Hallo,
folgendes Problem, ich habe einen Schießversuch dabei werden pro Schuss mehrere Bilder aufgezeichnet. Nun habe ich am Ende einen Ordner voll mit Bildern, ich brauche aber für meine Auswertung nur das jeweils erste Bild von jedem Schuss.
Ich möchte also anhand der Zeitdaten einen neuen Ordner erstellen welcher nur das jeweils erste Bild beinhaltet.
Habe das schonmal versucht so weit wie möglich zu erstellen
for i = 1:length(Dateiliste)
Images{i,1} = Dateiliste(i,1).name; % Speichert Name des Bildes
Images{i,2} = Dateiliste(i,1).date; % Speichert Aufnahmezeitpunkt end
% folgende Schleife sucht jeweils das erste Bild einer Bildfolge anhand des % Aufnahmezeitpunkts (nur die Sekunden werden berücksichtig) % Wird die Lücke zwischen 2 Bildern größer als 2 Sekunden handelt es sich um % eine neue Bildfolge
hab nur noch eine kleine Frage die für einen von euch Profis wahrscheinlich schnell zu lösen ist und zwar hab ich ja jetzt in der Variablen "neu" alle Nummer des jeweils ersten Bildes stehen.
Wie kann ich denn das übertragen so das ich am Ende eine Dateiliste habe in der nur noch diese Bilder drin sind?
for i = 1:length(Dateiliste)
Images{i,1} = Dateiliste(i,1).name; %Speichert Name des Bildes
Images{i,2} = Dateiliste(i,1).date; %Speichert Aufnahmezeitpunkt
end
disp(Images) %Zeigt die Liste mit allen Bildern und Aufnahmedatum
[~,~,~,HH,MM,SS] = datevec(Images(:,2),'dd-mmm-yyyy HH:MM:SS'); %Speichert Aufnahmezeitpunkt in 3 Vektoren; h,min,sec
%folgende Schleife sucht jeweils das erste Bild einer Bildfolge anhand des
%Aufnahmezeitpunkts (nur die Sekunden werden berücksichtig)
%Wird die Lücke zwischen 2 Bildern größer als 2 Sekunden handelt es sich um
%eine neue Bildfolge
filepath = uigetdir(pwd, 'Bitte Ordner waehlen.');
Dateiliste = dir(fullfile(filepath, '*.jpg')); %Erstellt einen Vektor mit allen Bildern
% Ohne Schleife: Image = cat(2, {Dateilist.name}.', {Dateiliste.date}.');
disp(Images) %Zeigt die Liste mit allen Bildern und Aufnahmedatum
% Time as serial number format:
Time = datenum(Image(:, 2));
Step = find(diff(Time) > 2 / 86400); % Index of time steps > 2 seconds
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.