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

Variablenname des aktuellen axes-Bildes auslesen

 

Mark81

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2013, 09:43     Titel: Variablenname des aktuellen axes-Bildes auslesen
  Antworten mit Zitat      
Hallo Zusammen,

ich möchte gerne in einem Edit-Text Fenster innerhalb eines GUIs den Variablennamen des aktuell in einem axes-Objekt (im selben GUI) enthaltenen Bildes darstellen.
Bei meiner Suche bin ich bisher auf die Methoden getimage(h) und imageinfo(h) gestossen (mit h = gca), leider liefern die keine Info zum Namen des axes-Bildes.

Vielleicht habt ihr eine Idee?

Vielen Dank im voraus und Grüße


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 13.11.2013, 09:56     Titel:
  Antworten mit Zitat      
Moin,

mit "exifread" bekommst du weitere Daten.

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

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.11.2013, 10:07     Titel:
  Antworten mit Zitat      
Hallo,

wenn es tatsächlich um den Variablennamen im Workspace geht, kann auch inputname helfen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Mark81

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2013, 11:57     Titel:
  Antworten mit Zitat      
Hallo,

erstmal Danke für eure Vorschläge Smile.
exifread bzw. imfinfo benötigt so wie ich das bisher getestet habe den Namen der Bilddatei? Da dieser Name ja gerade gesucht ist, scheint dies wohl nicht die passende Lösung zu sein?

Mit inputname komme ich irgendwie auch nicht weiter.

Vielleicht habe ich mich oben unklar ausgedrückt:
Ich habe ein GUI mit einem axes-Objekt. Dort lasse ich mir ein Bild mit einem bestimmten Namen anzeigen. In einem edit-text Feld im selben GUI möchte ich diesen Namen gerne anzeigen lassen. Dies soll so erfolgen, dass geprüft wird, wie der Name der angezeigten Bilddatei lautet.

Viele Grüße und Danke
 
Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 13.11.2013, 12:02     Titel:
  Antworten mit Zitat      
Wie lässt du dir denn das Bild im axes Objekt anzeigen? Code?
Private Nachricht senden Benutzer-Profile anzeigen
 
Mark81

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2013, 12:26     Titel:
  Antworten mit Zitat      
Hallo Kascho,

Code:

axes(handles.viewer_axes);
imshow(bild);
axis image;
axis off;
 
 
Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 13.11.2013, 12:29     Titel:
  Antworten mit Zitat      
Und wie bekommst du die variable "bild" ? Irgendwann musst du das ja mal eingelesen haben, über uigetfile, oder statisch mit Pfad und Dateinamen.
Also sollte ja irgendwo der Dateiname vorhanden sein.
Oder check Ichs grad nicht und es geht gar nicht um den Dateinamen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Mark81

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2013, 12:37     Titel:
  Antworten mit Zitat      
Hallo Kascho,

im Verlauf des Programms werden unterschiedliche Bilder im axes-Objekt dargestellt. Da ich nicht hart kodieren möchte (jedes Mal die edit-text Box aktualisieren wenn ein neues Bild hineingeladen wird), soll die edit-Box ständig prüfen, welches Bild gerade angezeigt wird und in Abhängigkeit davon den entsprechenden Variablennamen anzeigen.

Ist meine Absicht so ein wenig klarer geworden?

Grüße
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.11.2013, 12:58     Titel:
  Antworten mit Zitat      
Hallo,

die entscheidende Frage ist: wo kommt der Bild- bzw. Variablenname her?
Es kann ggf. sinnvoll sein, diese Information beim Einlesen des Bilds mit abzuspeichern, um sie beim Anzeigen des Bilds zur Verfügung zu haben.

Grüße,
Harald
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: 13.11.2013, 13:27     Titel:
  Antworten mit Zitat      
Sorry, habe deine Frage vorhin falsch verstanden. Wenn du die Bilder mit uigetdir und dir einliest, hast du Zugriff auf Namen und kannst auch die Bilder darstellen:

Code:
pname=uigetdir;
st=dir('*.jpg');  % alle Bilder liegen jetzt vor
x=d(4);  % Beispiel 4. Bild
y=x.name  % Name wird ausgegeben
imshow(y) % Bild wird dargestellt
name=y; % Welcher Name?
Private Nachricht senden Benutzer-Profile anzeigen
 
Mark81

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2013, 13:43     Titel:
  Antworten mit Zitat      
Danke Harald, Hubertus;
genau, die entscheidende Frage ist, woher der Variablenname kommen soll Smile
Ist es in Matlab nicht möglich, die edit-box im Hintergrund stets in "Lauerstellung" zu halten und stets den aktuellen Inhalt des axes-Objekt abzufragen?
Oder ist es so überhaupt nicht möglich, den Namen des aktuell dargestellten Bildes auszulesen?

Grüße u Danke!
 
Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 13.11.2013, 14:25     Titel:
  Antworten mit Zitat      
Also ich verstehe es anscheinend noch nicht. Wenn du ein Bild in die axes setzt, dann musst du das doch irgendwo her laden!?
Jetzt sprichst du wieder von Variablennamen. Was möchtest du denn haben? Ich vermute ja mal eher Dateinamen.

Wie willst du den "Inhalt" der axes in ein edit Feld schreiben?
Private Nachricht senden Benutzer-Profile anzeigen
 
Mark81

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2013, 14:47     Titel:
  Antworten mit Zitat      
Hallo Kascho,

ich lade ein Bild in die axes, somit ist der Name des Bildes bekannt.
Dieser Name soll nun in dem edit-Fenster erscheinen.

Nun werden aber an verschiedenen Stellen im Code Bilder in die axes geladen. Ich möchte eigentlich nicht an jeder dieser Stellen eine Zeile hinzufügen müssen wie
Code:

set(handles.edit_text,'String','BILDNAME');
 

.

Deshalb würde ich gerne das edit-Feld selbst ständig testen lassen, ob und welches Bild gerade in den axes geladen ist.

Ich weiß nicht, wie ich das noch besser erklären kann Sad

Grüße und Danke
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.11.2013, 16:29     Titel:
  Antworten mit Zitat      
Hallo,

das dürfte schwierig umzusetzen sein. Ich würde mich mit der einen zusätzlichen Zeile abfinden. Alternativ natürlich in eine andere Funktion auslagern:

Code:
function bildanzeige(fname)
bild = imread(fname);
axes(handles.viewer_axes);
imshow(bild);
title(fname)
axis image;
axis off;


... und jedes Mal, wenn du ein neues Bild anzeigen willst, rufst du halt diese Funktion auf.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Mark81

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2013, 16:41     Titel:
  Antworten mit Zitat      
Ok, Harald, vielen Dank!
Ich werde das mal ausprobieren und wie bereits erwähnt, zur Not eben die Zeile manuell einfügen.

Grüße und schönen Abend
 
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.