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

Punkte in Binärbild konvertieren

 

Matti

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2009, 00:36     Titel: Punkte in Binärbild konvertieren
  Antworten mit Zitat      
Hallo,

das ist mein erster Beitrag. An dieser Stelle möchte ich dem Forum ein Lob aussprechen. Bisher habe ich einige nützliche Tipps gefunden, die mir weiter geholfen haben.

Meine Frage ist folgende:
Ich habe eine nx2 Matrix, wobei die erste Spalte den x Wert und die zweite Spalte den y Wert eines Punktes wiedergibt. Wenn ich diese Punkte plotte, ergibt das zum Besipiel ein Rechteck. Nun möchte ich daraus ein Binärbild beliebiger größe machen. Das bedeutet, dort, wo sich ein Punkt befindet, soll eine 1 stehen und dort wo sich eben kein Punkt befindet, soll eine 0 stehen. Wenn man dieses Binärbild mit zB imagesc(Binaerbild) ausgibt, sollte es wieder ein Rechteck geben.

Im Grunde genommen macht die Funktion poly2mask das, wonach ich suche, nur das Problem dort ist, dass sie die eingeschlossene Fläche (mit 1en) ausfüllt.

Vielen Dank schonmal.

Gruß.


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 23.06.2009, 09:20     Titel:
  Antworten mit Zitat      
Moin,

kannst du mal eine kleine Beispiel-Matrix zur Verfügung stellen und evtl. auch ein Bild was entstehen soll? Oder ein Skizze?

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
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 23.06.2009, 10:22     Titel:
  Antworten mit Zitat      
Ich habe aufgrund des Hinweises zuerst mit anderen Befehlen der Image Processing Toolbox experimentiert, aber dann fiel es mir auf: Es ist ja ganz einfach mit GETFRAME möglich:

Code:

figure
line ([2,3,4,5],[10, 5, 8, 4])
im=getframe(gca);
a=im.cdata(:,:,1);
a=(a==0);
 


Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Matti

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.06.2009, 13:23     Titel:
  Antworten mit Zitat      
Hallo,

danke schonmal für die Antworten.

Ersteinmal eine Beisplies-Matrix:
Code:

testmatrix=[
2 2
3 2
4 2
5 2
5 3
5 4
4 4
3 4
2 4
2 3
2 2]

% geplottet sieht es dann so aus:
figure
plot(testmatrix(:,1),testmatrix(:,2))
axis([0 7 0 6])
 


Der Code von Andreas macht im Grundansatz genau das, was ich will. Er überträgt die Punkte meiner Testmatrix in ein Binärbild.

Das Problem bei dem Code vom Andreas ist, dass die Testmatrix zuerst in ein Plot (Fenster) übertragen wird und von dort aus erst in ein Binärbild.
Ok, kann man so machen, nur bei mir läuft eine Schleife, die sich bei jedem Durchgang eine Matrix schnappt und diese in ein Binärbild überträgt. Kann man das Plotfenster irgendwie unsichtbar machen und bei jedem neuen Durchgang den Plott resetten? Wenn ja, dann kann ich die Methode so übernehmen.

Das Zweite, was mir aufgefallen ist bei dem Code: Wenn ich die Testmatrix in das Binärbild übertrage, dann sollten auch die Axen Werte gleich sein (siehe Anhang).

Ich fasse nocheinmal zusammen:
Code:

testmatrix=[
2 2
3 2
4 2
5 2
5 3
5 4
4 4
3 4
2 4
2 3
2 2]

% von mir aus kann hier geplottet werden, aber dann mit der Möglichkeit, % dass das Plotfenster unsichtbar bleibt
figure
plot(testmatrix(:,1),testmatrix(:,2))
axis([0 7 0 6])

% hier sollten dann die Achsenwerte genau wie beim Plot der Testmatrix sein (siehe Anhang)
im=getframe(gca);
a=im.cdata(:,:,1);
a=(a==0);
Binaerbild=a;

imagesc(Binaerbild)


 


Gruß

Binaerbild.png
 Beschreibung:

Download
 Dateiname:  Binaerbild.png
 Dateigröße:  56.74 KB
 Heruntergeladen:  672 mal
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 25.06.2009, 14:40     Titel:
  Antworten mit Zitat      
Also mit der (Un-)Sichtbarkeit von Figure gibt es ein paar Tricks:

http://www.mathworks.com/support/solutions/en/data/1-7RK35B/

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.