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

mehrer Bilder einlesen und weitervearbeiten

 

MatLab-Rookie
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2013, 14:48     Titel: mehrer Bilder einlesen und weitervearbeiten
  Antworten mit Zitat      
Moin. Habe folgendes Problem: Habe 10.000 Bilder im pgm-Format. Will die alle über imread laden und mit imwrite im jpg-Format mit quality-factor 75 dannspeichern.

Gibt es da irgendwie eine Möglichkeit die Bilder mittels for-Schleife zu laden und zu bearbeiten? Habe nicht so die Lust für 10.000 Bilder die die imread und imwrite-Methode immer einzeln aufzurufen.

Vielen Dank im Voraus.

Gruß MatLab-Rookie
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 30.07.2013, 14:52     Titel: Re: mehrer Bilder einlesen und weitervearbeiten
  Antworten mit Zitat      
MatLab-Rookie hat Folgendes geschrieben:

Gibt es da irgendwie eine Möglichkeit die Bilder mittels for-Schleife zu laden und zu bearbeiten?

ja ^^
was hast du denn bis jetzt versucht ? welche fehlermeldungen sind aufgetreten?
falls du noch nichts gemacht hast würd ich mir mal den befehl
Code:
angucken. damit bekommst du dann die datei namen. die kannst du in der for schleife durchlaufen und benutzen. fang erstmal and un poste dann code und stell konkrete fragen wenn wir dir weiterhelfen sollen.
am besten du liest auch richtig fragen aus meiner signatur. neue user tun sich da immer schwer Smile
grüße winkow
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
MatLab-Rookie
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2013, 14:58     Titel:
  Antworten mit Zitat      
Moin. Kenne mich noch nicht so gut aus mit MatLab allgemein. Muss da im Moment nur ein paar Algorithmen mit Beispielen durchlaufen lassen. Also einfach über die Kommandozeile.

Das funktionierte auch. Nur will ich das jetzt mit den 10.000 Bildern machen.

Hatte die for-Schleife als Skript bzw. Funktion geschrieben.

for 1:1:10000
imread('*.pgm')
rnf

so hatte ich das implementiert....weiß aber, dass das nicht richtig war...
wo soll man die schleife denn implementieren im Hauptprogramm oder als Skript bzw. Funktion?


Danke im Voraus. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
MatLab-Rookie
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.07.2013, 14:59     Titel:
  Antworten mit Zitat      
mit rnf am Ende des Algorithmus war end gemeint Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 30.07.2013, 15:04     Titel:
  Antworten mit Zitat      
Zitat:
wo soll man die schleife denn implementieren im Hauptprogramm oder als Skript bzw. Funktion?
das hängt davon ab was und wie oft du das machen willst oder ob du das immer machen willst ^^ hat aber mit dem problem an sich nichts zu tun Smile wenn du code postest benutze bitte die code umgebung. macht das ganze einfacher zu lesen.
Code:

for 1:1:10000
imread('*.pgm')
end
ist kein gültiger matlab syntax und macht auch nicht so viel sinn dein code macht ja jeden druchlauf das gleiche Smile
wie gesagt guck dir mal den befehl dir. damit bekommst du die datei namen.
die kannst du dann mittels index durchlaufen.
so in der art:
Code:
for k=1:10000
pich=imread(names{i})
end

versuch erstmal selber wie gesagt und poste dann "lauffähigen code" und fehlermeldungen.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 31.07.2013, 06:37     Titel:
  Antworten mit Zitat      
Moin Matlab-Rookie,

es gibt unter "Forum" eine Schnellsuche. Prinzipiell willst du doch "Bilder- Ordner-einlesen". Dort ist das Thema mehrfach abgehandelt.

Viele Grüße - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
MatLab-Rookie
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2013, 09:47     Titel:
  Antworten mit Zitat      
Moin. Habe nun folgenden Code geschrieben:

Code:
sdirectory = 'BOSSbase_1.01';
jpgfiles = dir([sdirectory '/*.jpg]']);
for k=1:length(jpgfiles)
filename = [ sdirectory '/' jpgfiles(k).name];
I = imagread(filename);
end


Habe dies als Skript geschrieben. Matlab hat es fehlerfrei kompiliert. Nur passierte bei der Eingabekonsole nicht viel. Es wurde nur alg.m ausgeführt und nichts weiter.

bei
Code:

sdirectory = 'BOSSbase_1.01';
jpgfiles = dir([sdirectory '/*.jpg]']);
for k=1:length(jpgfiles)
filename = [ sdirectory '/' jpgfiles(k).name];
I = imagewrite(filename);
end



war es genauso. Könnt ihr mir weiterhelfen?

Code war fehlerfrei, aber es passierte dann nicht mehr viel....
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 31.07.2013, 10:14     Titel:
  Antworten mit Zitat      
Was sollte denn da passieren? Du musst doch die Bilder erst einlesen, dann verarbeiten und dann speichern. So macht dein Script doch keinen Sinn. Gibt es einen besonderen Grund, warum du die Sonderfunktion imagewrite und nicht die Matlabfunktionen imread + imwrite benutzt?
Private Nachricht senden Benutzer-Profile anzeigen
 
MatLab-Rookie
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2013, 10:35     Titel:
  Antworten mit Zitat      
Moin. Habe das Skrip aus dem Netz übernommen...

Wie würdest du denn vorgehen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 31.07.2013, 10:53     Titel:
  Antworten mit Zitat      
Das habe ich doch anfangs geschrieben! Gebe die Suchwörter in die Schnellsuche ein und du findest dazu Lösungsvorschläge. Du solltest zunächst keine Sonderfunktionen verwenden, die auch nur spärlich im Netz zu finden sind. Das kompliziert die Sache nur.
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 31.07.2013, 13:22     Titel:
  Antworten mit Zitat      
Hallo MatLab-Rookie, (vorsicht editiert)

zunächst einmal, das hier ist ein Hilfe-Forum und kein Macht-mal-für-mich-Forum. Dafür könntest du im "Programmieraufträge"-Bereich nachfragen. In der Regel postet der Hilfesuchende Code und beschreibt sein Anliegen. Die Helfer geben Tipps oder Codebeispiele, die dann vom Helfesuchenden ausprobiert werden.

Nun zu deinem Problem:
Dein Code kann ja auch "nichts weiter" machen, da du die images zwar einliest... und dem "imagewrite" nur die filenames gibst. Außerdem dachte ich, deine files sind *.pgm-Files?

Code:

imagenames = dir('*.pgm');
for k = 1:length(imagenames)
   current_image = imread(imagenames(k).name);
   imwrite(current_image,strrep(imagenames(k).name,'.pgm',''),'JPG','Quality',70);
end

 


Der Code dient als Beispiel! Ich habe bisher nicht mit imread und imwrite gearbeitet, die Settings dazu sind aber in der doc zu finden.

Grüße
Chris

Zuletzt bearbeitet von BlackDread am 31.07.2013, 15:03, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 31.07.2013, 13:36     Titel:
  Antworten mit Zitat      
Dein Post kann ich nun überhaupt nicht nachvollziehen. Welche Probleme hast du mit meiner Antwort auf die Frage von Matlab-Rookie. Er hat sich neu im Forum angemeldet und vielleicht noch nicht die richtigen Fragen gefunden. Es kann doch nicht sein, dass langjährige Beobachter des Forums zu vielen Themen die hier genannten Lösungen mitschreiben und für ähnliche Fälle parat haben, während ein neuer User sich hier erst einmal einfinden muss.

Außerdem habe ich überhaupt keine Lösung vorgegeben, sondern nur darauf hingewiesen, wo man nach Lösungen suchen kann. Sonst kann man die Schnellsuche auch entfernen!!!

Und diese unpräzisen Fragen kann ich auch noch verstehen. Hier beteiligen sich viele, die aus Lust an der Thematik anderen weiter helfen wollen. Und ganz im Gegensatz zu einem Lehrbetrieb soll man neuen Mitglieder auch mal eine unpräzise Frage gestatten. Aus meiner Sichtweise wird es einigen Anfängern manchmal nicht leicht gemacht und diese melden sich dann auf die erste vl. unbefriedigende Antwort nicht wieder.

Ob hier jemand nur schnelle Lösungen abgreifen will und der Meinung ist, er muss sich keine Mühe geben, wird bei den nächsten Anfragen doch deutlich.

Und manchmal hat man auch nur ein kleines Problem in einer komplexeren Umgebung. Und dann kann ich das gut verstehen, wenn man nicht immer alles nachlesen muss. Matlab ist ein lebendiges Instrument, dass auch von schnellen Lösungen lebt. Jemand der nur abschreibt, wird es nicht weit bringen.
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: 31.07.2013, 15:03     Titel:
  Antworten mit Zitat      
Hallo Hubertus,

Dein Hinweis auf die Such-Funktion im Forum ist hilfreich, denn das Bearbeiten von Files in einer Schleife gehört zu den 5 häufigst gestelltesten Fragen.

Eventuell hat BleackDread Dich mit dem Fragen-Steller verwechselt. Aber weder Deine noch MatLab-Rookies Mitteilungen klingen nach "Macht-mal-für-mich" oder "Programmieraufträge". Da scheint ein Missverständnis vorzuliegen.

BlackDreads Code klärt das Problem meiner Ansicht nach. Eine Suche im Forum ist dennoch empfehlenswert. "Settings in der doc" bedeutet, dass man hier nachlesen kann (für die Matlab-Anfänger unter uns):
Code:


@Matlab-Rookie:
Laß Dich nicht von den Diskussionen verwirren. Missverständnisse liegen in der Natur jeder Kommunikation.
Ich sehe keinen Grund das M-File zu kompilieren, da Du es auch direkt aus Matlab starten kannst. Eine Kompilation wäre erst dann hilfreich, wenn Du das Programm regelmäßig auf einen Rechner ohne Matlab laufen lassen würdest. Dann wären allerdings NConvert oder ImagMagick geeignetere Programme für eine solche Konvertierung (Google findet sie...).

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
BlackDread
Forum-Century

Forum-Century


Beiträge: 212
Anmeldedatum: 11.05.11
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 31.07.2013, 15:11     Titel:
  Antworten mit Zitat      
Hallo Hubertus (diesmal bist du wirklich gemeint),

ich hatte aus versehen den falschen Namen hingeschrieben! Tut mir Leid.

das mit dem "Macht-mal-für-mich" habe ich so verstanden, da sich Matlab-Rookie anscheinend nicht viel mit dem Code (den er irgendwo aus dem Netz hat) und den gegebenen Hilfestellungen/Tips auseinandergesetzt hat.

Ich will damit nicht sagen, dass ich nicht helfen will (ich habe ja auch ein Lösungsbeispiel gegeben), aber ich würde mir durchaus wünschen, dass die Fragesteller sich z.b. an Winkows "wie frage ich richtig" halten.

Nochmal an alle, es tut mir leid wegen der Verwirrung, die ich gestiftet habe.
Ich hoffe mein Code hilft dir MatLab-Rookie. Bei Fragen dazu, helfe ich auch gerne.

Viele Grüße
Chris
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 31.07.2013, 16:01     Titel:
  Antworten mit Zitat      
Hallo Black Dread,

danke für die Richtigstellung. Alles ist gut Wink

Zitat:
da sich Matlab-Rookie anscheinend nicht viel mit dem Code (den er irgendwo aus dem Netz hat) und den gegebenen Hilfestellungen/Tips auseinandergesetzt hat.

Dazu habe ich die gleiche Meinung.

Ich sehe aber auch, dass doch öfters mal Fragen mit Gegenfragen beantwortet werden. Nicht jeder ist nur faul. Wenn ich nicht weiß, was ich fragen soll, bringen auch die ständig wiederkehrenden Hinweise nichts. Dazu gehört auch der immer wiederkehrende Hinweis auf gettig startet. Wenn dort alles drin stehen würde, brauchten wir dieses Forum nicht.

Ich versuche immer, mit Anfängern etwas vorsichtiger umzugehen. Was soll uns daran hindern, nicht mal mit einem konkreten Anfang zu antworten? Gerade wenn man sich diesem Forum nähern möchte und nicht so den richtigen Einstieg findet, sollte man auf unausgegorene Fragen mit Nachsicht reagieren. Man sieht ja dann, wie er sich weiter verhält. Vielleicht genießen die User so ein Stück Freiheit und nonchalanc, die man sich im beruflichen Alltag nicht immer erlauben kann. Diese Einstellung ist natürlich bei Experten nicht so beliebt.

Wir werden jeden Tag mit Informationen zugeschmissen. Ich kann das verstehen, wenn man mal nichts nachlesen will! Mit vorgegebenen Lösungen kann man auch lernen - wer lernen will! Ich glaube nicht, dass sich zukünftig etwas ändern wird. Aber das soll uns den Spaß an diesem Forum nicht trüben.


Viele Grüße - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.