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

figure export

 

Raffnix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2009, 14:29     Titel: figure export
  Antworten mit Zitat      
Hallo allerseits,
ich habe mir ein figure erzeugt und möchte von diesem die Pixelanzahl der verschiedenen Farben (schwarz und weiß) auslesen. Da die Bildschirmauflösung nicht reicht hilft mir getframe nicht weiter. Daraufhin habe ich versucht es zu exportieren und wieder einzulesen.

Mit hgexport klappt auch alles wunderbar; ich kann es nur das .eps nicht wieder einlesen.

Mit dem print-Befehl bekomme ich immer nur ein schwarzes Bild. Ich habe schon alle Renderer ausprobiert und es hat nicht funktioniert; auch habe ich die Formate durchprobiert.

Es klappt, wenn ich auf export figure klicke, danach eine Auflösung von bsp. 600 zuweise, -> apply to figure und dann den print-Befehl verwende. Wieso weshalb, warum weiß ich nicht?

Vielleicht könnt ihr mir ja bei diesem Problem helfen?

Gruß
Andreas


Raffnix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 12:48     Titel:
  Antworten mit Zitat      
hat denn keiner eine Idee?

Ist es irgendwie möglich, die Schritte beim export-setup über Matlab-befehle zu machen?
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 07.07.2009, 13:17     Titel:
  Antworten mit Zitat      
Moin,

hab ich es richtig verstanden, dass du ein Binärbild hast und von diesem die Anzahl der schwarzen Pixel und die Anzahl der Weißen Pixel wissen möchtest?

Code:
A = logical(eye(4));
NumberBlack = length(A(~A));
NumberWhite = length(~A(A));
% oder
NumberWhite2 = numel(A)-NumberBlack;


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Raffnix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 16:24     Titel:
  Antworten mit Zitat      
Vielen Dank für die Antwort; es ist so ähnlich.

Ich habe ein figure mit schwarzen und weißen Pixeln. Jetzt das Problem: Je nach Diskretisierung (Auflösung des Bildes) bekomme ich ein anderes Verhältnis von schwarzen zu weißen Pixeln, da beispielsweise die Kanten von Kreisen gröber dargestellt werden.

Ich möchte aber recht genau den rel. Flächeninhalt der schwarzen Gebilde bestimmen. Hierfür wollte ich einfach eine große Auflösung einstellen, exportieren, importieren und mir dann den relativen Flächeninhalt bestimmen. Aber ich bekomme immer nur ein schwarzes Quadrat exportiertm wenn ich bsp. print -r600 -djpeg test.jpg verwende. Ich habe alle Renderer und Bildformate ausprobiert.

Danke und Gruß
Raffnix
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 07.07.2009, 16:36     Titel:
  Antworten mit Zitat      
Und wenn du stattdessen (unter Voraussetzung die Image Processing Toolbox ist vorhanden) IMRESIZE verwendest?

Bei mir funktioniert dieses Beispiel einwandfrei:
Code:
I = imread('rice.png');
BW = im2bw(I, graythresh(I));
imshow(BW)
print -r600 -dpng test.png


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Raffnix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 16:49     Titel:
  Antworten mit Zitat      
Ich habe aber leider kein Image, sonder ein Figure. Das ist ja das ganze Problem. Ich will ein Image mit einer hohen Auflösung draus machen!

Übrigens hat ein einfaches Testbeispiel geklappt. Deshalb füge ich mal eine solche Problemdatei als .fig an.

Gruß
Raffnix

untitled.fig
 Beschreibung:

Download
 Dateiname:  untitled.fig
 Dateigröße:  21.04 KB
 Heruntergeladen:  488 mal
 
Raffnix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 16:53     Titel:
  Antworten mit Zitat      
Es schein daran zu liegen, dass ich axes auf nicht sichtbar gestellt habe. Wenn ich die Achsen wieder einblende kann ich das Bild exportieren. Werde jetzt einfac mit Achsen arbeiten und die Labels löschen.

Danke für die Hilfe.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 07.07.2009, 16:53     Titel:
  Antworten mit Zitat      
Wie hast du diese Figure erstellt?!
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Raffnix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.07.2009, 17:39     Titel:
  Antworten mit Zitat      
set(gca, 'visible','off')

Rest ist aus patches aufgebaut. Die Kreise habe ich über Polarkoordinaten gezeichnet. Hätte im Nachhinein aber auch die Funktion rectangle verwenden können.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 07.07.2009, 17:49     Titel:
  Antworten mit Zitat      
Hmmm... Kannst du mal einen Beispiel-Code basteln, der das Verhalten zeigt (so wie ich oben)?
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Raffnix

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.07.2009, 13:01     Titel:
  Antworten mit Zitat      
anbei ein Beispiel:

Code:
figure(1)
patch([0 0 1 1],[0 1 1 0],[1 1 1],'EdgeColor',[1,1,1])
set(gca,'visible','off')
rectangle('Position',[0.5 0.5 0.25 0.25],'curvature',[1 1],'Facecolor','k')
axis equal
print -r100 -djpeg test.jpg
figure(2)
im = imread('test.jpg');
imshow(im)


Wenn set(gca,'visible','off') rauskommentiert wird funktionierts. Es funktioniert auch wenn 'EdgeColor',[1 1 1] nicht gesetzt wird. Warum - keine Ahnung? Ich habe es momentan so gelöst, dass ich die Achsen anzeigen lasse und danach mit imcrop das Bild wieder zuschneide.
 
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.