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

Größe eines Bildes in einer Figure

 

Albev

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 11:25     Titel: Größe eines Bildes in einer Figure
  Antworten mit Zitat      
Hallo,

angenommen man erhält mit imagesc ein Bild. Wenn man dann auf Tools->Data Statistics geht, so erhält man zum Beispiel die Range der x- bzw. y-Achse. Mit "Save to workspace..." hat man das dann in Variablen abgespeichert. Geht das auch nicht manuell? Was ich vor allem brauche ist die Größe der visualisierten Matrix.

Grüße,
Albev


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.10.2013, 13:22     Titel: Re: Größe eines Bildes in einer Figure
  Antworten mit Zitat      
Hallo Albev,

Das ist noch nicht klar. Es würde helfen, wenn Du den entsprechenden Matlab Code postest.
Wenn Du "imagesc(Img)" eingibst, benötigst Du keine komplizierten Methoden, um die Größe der visualisierten Matrix zu erhalten: "size(Img)" macht das direkt. Oder was bedeutet genau "Größe"? Was möchtest Du genau erhalten?

Man kann meines Wissens nach alle per GUI ausführbaren Aktionen auch per Code auslösen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 13:38     Titel:
  Antworten mit Zitat      
Hallo Jan,

es geht darum, was wenn ich die Matrix nicht mehr habe. Also z.B.
Code:

imagesc; %öffnet eine figure mit diesem Kinderbild, deren Matrixdastellung ich nicht habe
[x,y]=magischeSizeFunktion(?);
 


Als Ergebnis soll herauskommen x=64 und y=64.

Ich hoffe das ist etwas verständlicher.

Grüße,
Albev
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2013, 13:42     Titel:
  Antworten mit Zitat      
Nochmal ich. Leider kann man als Gast nicht editieren.

Ich möchte genau das, was, wenn man auf "Tools"->"Data Statistics" im figure Fenster geht, hinter "max" steht haben.

Grüße,
Albev
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.10.2013, 15:46     Titel:
  Antworten mit Zitat      
Hallo,

Code:
ImgH = imagesc;
Data = get(ImgH, 'CData');

Ich habe kein Matlab zur Verfügung und weiß deshalb nicht, was bei "Tools"->"Data Statistics" ausgegeben wird. Aber mit den üblichen Funktionen solltest Du aus den Daten alles notwendige finden können: min, max, std, mean, ...

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Albev

Gast


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

fast. CData ist genau das was ich brauche, aber bei mir sieht der Fall eher so aus:
Code:

ImgH = imagesc;
clear all; %Leider alles weg
Data = get(ImgH, 'CData');
 


Das get(X,'CData') hat mich aber auf die richtige Spur geführt.
Mein Code sieht jetzt (im Prinzip) wie folgt aus:
Code:

imagesc;
clear all;
aux0=figure(1);
aux1=get(get(aux0,'Children'));
aux2=get(aux1.Children);
Data=aux2.CData;
[x,y]=size(Data);
 


Vielen Dank für die Hilfe trotz meiner Unfähigkeit das Problem konkret genug darzustellen Wink

Grüße,
Albev
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.10.2013, 10:49     Titel:
  Antworten mit Zitat      
Hallo Albev,

Zitat:
Code:
ImgH = imagesc;
clear all; %Leider alles weg
Data = get(ImgH, 'CData');

Puh, das sieht ja gruselig aus. Das "clear all" hat huier überhaupt nichts zu suchen. Es löscht alle Variablen (also auch "ImgH"), entfernt alle geladenen Funktionen aus dem Speicher, so dass ein zeitraubendes Nachladen von der Festplatte benötigt wird, und am schlimmsten ist das Löschen aller Breakpoints: Alles, was das Debuggen behindert, ist ein böser Feind des Programmierers.
Also empfehle ich dringend alle "clear all" wegzulassen.

Wie immer finde ich es extrem verwunderlich, wieso so viele Matlab-Beginner diesen Befehl in ihren Code einfügen. er empfiehlt denn sowas? Und warum nur?! Ich bin wirklich oft dem Verzweifeln nahe. Wenn die Leute so fleißig ihre Steuern zahlen würden, wie "clear all" in Matlab Code auftaucht, könnten wir alle Finanzbeamten in den bezahlten Urlaub schicken.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Albev

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2013, 13:44     Titel:
  Antworten mit Zitat      
Laughing ja das mit den breaking points ist immer anstrengend. Aber da ich häufig Scripte benutze um meine Funktionen aufzurufen, hatte ich auch schon häufiger das Problem, dass noch irgendwo eine Variable im workspace war und zu Fehlern geführt hat.
nein tatsächlich sieht mein code anders aus(deutlich komplexer). Es sollte nur verdeutlichen, dass ich den handle vom imagesc nicht mitnehmen kann. (könnte schon, aber dann hätte ich was an vorherigem, teilweise nicht von mir geschriebenen code ändern müssen und da die figure noch offen sind...)
Mein code hat eher die Form:
Code:

[koordinaten,bildausschnitte]=function(argumente) %hier drin werden matrizen über streams geladen, dinge auf Bildern detektiert und Subbilder ausgeschnitten usw usw.
[guteKoordinaten,guteBildausschnitte]=nochEineFunction(bildausschnitte);%Weiterer Detektion
plot(figure(n),guteKoordinaten)%An guten Koordinaten Symbole hinsetzen
 

Eigentlich kein Problem, wäre nicht irgendjemand irgendwann mal auf die gloreiche Idee gekommen die Koordinaten von rechts aus zu zählen-.- Dh ich muss immer ("Breite des Bildes" - x) machen um an die richtige x-Koordinaten zu kommen.

Also im Prinzip ist meine Frage aus Faulheit und Neugier, ob man überhaupt an die Daten in einer Figure noch rankommt, entstanden.

Ich sollte wirklich an meinen "Minimalbeispiel-erstellen-und-erklären" Fähigkeiten arbeiten. Ich hoffe es hat dich nicht zu sehr erschüttert Wink

Grüße und nochmal vielen Dank,
Albev
 
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 - 2025 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.