WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Bilder automatisch umbennen

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2021, 15:20     Titel: Bilder automatisch umbennen
  Antworten mit Zitat      
Hallo,

ich würde gerne Bilder automatisch mit Matlab umbennen.
Hierzu habe ich angefangen eine Funktion zu schreiben, die aber leider nicht funktioniert.

Code:
clear all; close all; clc;

cd D:\Bilder\Aufnahmen
 a=dir('*.jpg');

for i=1:10
    for j=1:7
Name=[',Woche=',num2str(i),',Tag=',num2str(j)];

for k = 1:size(a)
  movefile(a(k), Name)
end

    end
end
 



Mein Problem ist schon mal, dass mir Matlab einen Fehler ausspuckt, dass bei cd "Too many input arguments." sind.

Außerdem möchte ich fragen, ob mein Code an sich sonst richtig aufgebaut ist.
Ich möchte den Bildern im Ordner automatisch nacheinender mit Schleifen die unterschiedlichen Namen geben.

Viele Grüße


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 23.04.2021, 16:45     Titel:
  Antworten mit Zitat      
1. Hochkommata:
Code:
cd 'D:\Bilder\Aufnahmen'


2. Das, was du dir als "Name" zusammenbaust, ist sicherlich nicht konform mit den Namensrichtlinien.
für i = 1 & j = 1 kommt z.B. heraus:
Code:
,Woche=1Tag=1

Sowohl das Komma am Anfang, als auch die Gleichheitszeichen und die Fehlende Dateiendung dürften Probleme ergeben.

3. Wird sicher nicht funktionieren.
Denn beim ersten Schleifendurchlauf (i = 1, j = 1) werden bereits ALLE Bilddateien umbenannt.
Und zwar mit dem EINEN Namen, der erzeugt wurde.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2021, 18:59     Titel:
  Antworten mit Zitat      
Hallo,

danke für die Antwort und die Verbesserungen.

Mmmartina hat Folgendes geschrieben:


3. Wird sicher nicht funktionieren.
Denn beim ersten Schleifendurchlauf (i = 1, j = 1) werden bereits ALLE Bilddateien umbenannt.
Und zwar mit dem EINEN Namen, der erzeugt wurde.


Gibt es einen Weg, wie man jedes Bild so benennen kann, wie ich es wollte?

Viele Grüße
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 23.04.2021, 20:35     Titel:
  Antworten mit Zitat      
Nein.
Nicht einen, sondern viele.
Die Frage lautet aber erstmal WIE wolltest du es?
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2021, 21:16     Titel:
  Antworten mit Zitat      
Hallo,

ich würde gerne das erste aufgenommene Bild im Ordner zu "Woche1Tag1", das zweite "Woche1Tag2", ... bis "Woche10Tag7" automatisch umbenennen.

Dies würde ich gerne auch mit anderen Namen bei anderen Ordnern machen. Also dies ist ein Beispiel, wie ich es gerne hätte.

Viele Grüße
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 24.04.2021, 08:09     Titel:
  Antworten mit Zitat      
Erstelle dir einen ordentlichen Programmablaufplan oder ein Struktogramm.
Oder wenigstens mit Stichpunkten ausführlich(!), was nacheinander getan werden muss.

Denn derzeit verläufst du dich einfach nur in diversen geschachtelten Schleifen.
Du musst sicherstellen, dass du zuerst über alle Bilder läufst. Enweder per for-Schleife, oder per while nicht letztes-Bild.
Je nachdem dann das Innenleben erstellen.


Altanative zu Schleifen wäre z.B. strcat.

Außerdem überlege dir, wie der Name der Dateien RICHTIG heißt.
Mindestens eine Dateiendung muss dabei sein.
(Und wenn du schon fortlaufen nummerierst, wäre "01","02",.... mindestens für die Wochen noch schick, für die richtige Sortierung.)
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.04.2021, 11:25     Titel: Re: Bilder automatisch umbennen
  Antworten mit Zitat      
Hallo,

Lasse zunächst den brutalen clearing header weg:
Code:

Insbesondere clear all löscht alle Funktionen aus dem RAM und das Nachladen von der Festplatte ist langsam. Vorteile bietet das nicht. Lehrer empfehlen das oft, weil es ihnen selbst empfohlen worden ist. Matlab kann aber sei Version 2 von 1986 mit Funktionen umgehen und man kann den Workspace so viel einfacher und sicherer sauber halten. Das "clear all" ist typisches Beispiel für "Cargo-Cult-Programming".

Verwende absolute Pfadnamen statt per CD in das entsprechende Verzeichnis zu wechseln. Callback von GUIs oder TIMER Objekten können ebenfalls CD aufrufen und damit zu sehr unerwartetem Verhalten führen, weil man z.B. plötzlich in einem völlig anderen Order Files überschreibt.

Code:
Folder = 'D:\Bilder\Aufnahmen';
FileList = dir(fullfile(Folder, '*.jpg'));

iFile = 0;
for i=1:10
    for j=1:7
       destName = sprintf('Woche=%d,Tag=%d.jpg', i, j);
       destFile = fullfile(Folder, destName);
       iFile = iFile + 1;
       srcFile = fullfile(FileList(iFile).folder, FileList(iFile).name);
       movefile(srcFile, destFile)
   end
end

Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.