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

Bilder aus Matrix filtern

 

backspin_chris
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2012, 09:33     Titel: Bilder aus Matrix filtern
  Antworten mit Zitat      
Guten Morgen ich habe folgendes Problem:

Ich habe eine 256x256 double, dies entspircht einem Bild, in diesem Bild sind 65 Bilder jedes Bild besteht aus einem oder mehrern Punkten in der 256x256 double:

z.b würde Bild 1 so sein

..0000000001111111000000..
..0000000000111100000000...
...0000000000011000000000..
...
etc
bild zwei erscheind so
..
..00000000000000022222200000000000..
00000000000000000200000000000000..
...00000000000000000000000000000...

Nun möchte ich diese 65 Bilder und deren dazugehörige Punkte heraus bekommen und in diese in 65 Logical 256x256 Datein stecken sodass in
seg-nach_shrink_1= alle Positionen von Punkt 1 in der logical mit true bezeichnet werden

ich versuch dies so

Code:

seg=65
for zahl=1:seg
   
seg_nach_shrink_punkt_(('zahl'))=(C_1650_lbl2==zahl ); % von 1:seg_nach_shrink

end


Der Name seg_nach-shrink_punkt_
sollte jeweils um die Durchlaufnummer erweitert werden

leider läuft es nicht wie ich mir es erhofft hatte

Ich hoffe ihr habt eine lsg.
Private Nachricht senden Benutzer-Profile anzeigen


Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 02.05.2012, 10:59     Titel:
  Antworten mit Zitat      
Was soll denn C_1650_lbl2 sein?
Müsste dabei nicht irgendwo noch "zahl" auftauchen?
Wie wäre es, einen Matrixvergleich zu machen damit gleich ein boolean raushüpft, anstelle über "zahl" zu gehen?

Dieses (('zahl')) hab ich noch nie gesehen - was macht das denn?
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
backspin_chris
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2012, 11:06     Titel:
  Antworten mit Zitat      
Das 'Zahl' war mein falscher versuch, die datein dynamisch umzubennen sollte nun so ausssehen:

Code:
for zahl=1:abschnitt
   
assignin('base',['seg_nach_shrink_punkt_' num2str(zahl)])=(C_1650_lbl2==zahl ); % von 1:seg_nach_shrink

end


das Zahl hinter == soll dann auch dynamisch wechseln je nach ablauf 1:65 werden

C_1650_lbl2 ist die 256x256 Matrix mit allen Informationen

Bisher habe ich es so gelöst die einzelnen punkte aus der matrix zu bekommen
Code:

seg_nach_shrink_punkte=(C_1650_lbl2>0);
seg_in_AB1650=C_1650;
seg_in_AB1650(~seg_nach_shrink_punkte)=0;


das Problemm ist das hierbei das nun alle Punkte mit 1 also true auftauchen, ich sie aber weiterhin in gruppen brauche sprich

bild 1 alle punkte 1
bild 2 alle punkte 2 aus der Matrix
Private Nachricht senden Benutzer-Profile anzeigen
 
backspin_chris
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2012, 11:09     Titel:
  Antworten mit Zitat      
ein Bereich in der Matrix sieht z.B so aus

0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 0 0
0 1 1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 0 0 0
0 0 1 1 0 1 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
5 5 5 5 5 5 0 0 0 0 0
5 5 5 5 5 5 5 0 0 0
5 5 5 5 5 5 5 5 0 0
5 5 5 5 5 5 5 5 0 0
5 5 5 5 5 5 5 5 5 0
5 5 5 5 5 5 5 5 5 0
5 5 5 5 5 5 5 5 0 0
5 5 5 5 5 5 0 0 0 0
0 0 0 0 0 0 0 0 0 0


usw
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 02.05.2012, 11:51     Titel:
  Antworten mit Zitat      
Äh, sind deine Bilder quasi untereinander in der selben Matrix?
Die von dir gepostete Matrix scheint auch nicht wirklich "normal" zu sein, denn dann gäbe es ja in jeder Zeile die selbe Spaltenanzahl...

Also, ich zum Mindest bin noch weit weg davon zu verstehen, wie deine Datenbasis aufgebaut ist.
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
backspin_chris
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2012, 12:49     Titel:
  Antworten mit Zitat      
evetuell versuche ich es noch mal anderes zu erklären ich habe ein ganz normale standard matrix 256X256 die sieht so aus ( nur ein Abschnitt dargestellt) es werdem enige zahlen geschluckt daher sieht es ungleichmässig aus.

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 42 42 42 42 42 0 0 0 0 0 0 0 0 0 0 0
42 42 42 42 42 42 42 0 0 0 0 0 0 0 44 44 42 42 42 42 42 42 0 0 0 0 0 0 0 0 0 0
42 42 42 42 42 42 42 42 0 0 0 0 0 44 44 44 42 42 42 42 42 42 0 0 0 0 0 0 0 0 0 0
42 42 42 42 42 42 0 0 0 0 0 0 0 44 44 44 42 42 44 42 42 44 0 0 0 0 0 0 0 0 0 0
42 42 42 42 42 42 0 0 0 0 0 0 0 0 44 44 42 42 42 42 42 0 0 0 0 0 0 0 0 0 0 0


_---------------------------------------------
In dieser Matrix tauchen 65 solcher Bereiche auf. Der Bereich 1 dort sind alle dazugehörigen punkte mit der ziffer 1 gekennzeichnet, im Bereich 2 dort alle Punkte mit einer 2 gekennzeichnet usw.

In Wirklichkeit entsprechen diese Bereiche schwarzen Bereichen auf einem sonst weissen Blatt, hinter jedem dieser Punkte steckt aber ein einzelnes IR-Spektrum, nun möchte ich alle Spektren von Bereich 1 bis 65 jweils nach Bereich getrenn zusammen haben.

Dazu wollte ich 65 logical Matrizen erstellen für die Matrize Nr 43 sollten z.b. alle Punkte die in der Orginal Matrix als 43 gekennzeichnet sind als true auftauchen der rest als false. Aus logical MAtrix kann ich mir dann im Vergleich zu einer Matrix mit den Spektren die Infos herausziehen.


Mein Ansatz um alle Segmente von 1 bis 65 als true in einer einzigen Matrix zu haben so bishher so aus.

C_1650_lbl2= Orginal 256x256 Matrix
Code:
seg_nach_shrink_punkte=(C_1650_lbl2>0);
seg_in_AB1650=C_1650;
seg_in_AB1650(~seg_nach_shrink_punkte)=0;


das hat auch geklappt nur leider kann man dann nicht mehr Unterschieden welcher Punkt zu welchem Bereich zählt. Daher nun dieser Schritt für alle 65 Segmente einzeln in einer Schleife.

Code:
for zahl=1:65
   
'seg_nach_shrink_punkt_' num2str(zahl)=(C_1650_lbl2 == zahl ); % von 1:seg_nach_shrink

end


Das Wort Zahl sollte in den jeweiligen Runden von 1:65 ausgetauscht werden, so dass die Datei automatisch die Nummer der Runde als Name am Ende bekommt (num2str(zahl))

und das die Orginal Matrix abgesucht wird nach den Werten 1 in der ersten Runde 2 in der zweiten Runde usw. (==zahl)

Das Ergebniss sollte als 65 Matrizen sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 02.05.2012, 13:04     Titel:
  Antworten mit Zitat      
okay...

Dein assignin-Versuch war doch nicht übel... Nur die Verwendung, naja Very Happy
Code:
help assignin

assignin('base',['seg_nach_shrink_punkt_' num2str(zahl)], (C_1650_lbl2==zahl ) )
 



[edit]
Wobei es vielleicht schöner wäre, die verschiendenen Bool-Matrixen in ein cellArray zu packen...
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
backspin_chris
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 25.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2012, 13:06     Titel:
  Antworten mit Zitat      
Wunderbar ein Traum

Top

Schönen Tag noch und Danke für die Hilfe Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 02.05.2012, 13:14     Titel:
  Antworten mit Zitat      
Bitteschön!

Poste nächstes Mal einfach die Fehlermeldung mit, da weiss man gleich, wo man suchen soll!
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
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.