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

Welche Datenstruktur?

 

Mr.Radar
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 28.08.08
Wohnort: ---
Version: 7.4.0
     Beitrag Verfasst am: 28.08.2008, 21:31     Titel: Welche Datenstruktur?
  Antworten mit Zitat      
Hallo erstmal hier im Forum - ich hoffe meine Frage ist nicht allzu newbie-mäßig; ich beschäftige mich zum ersten Mal "intensiver" mit Matlab.

Folgendes Problem:

Frage 1:
Ich habe 12 Matrizen (Filterkerne) m1, m2,..., m12 mit jeweils unterschiedlichen Dimensionen. Ich würde diese Filterkerne gerne nacheinander auf ein Bild anwenden, d.h. ich muss die irgendwie in eine Struktur quetschen, wo ich sie dann a la "MeineFilterStruktur(i)" in einer Schleife ansprechen kann. Wie macht man das am besten?

Frage 2: Ich habe 12 Matrizen (Bilder) mit gleichen Dimensionen (m,n) - wie kann man aus diesen 12 2D-Matrizen eine 3D-Matrix (m,n,12) machen?

danke
lg m.
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 29.08.2008, 09:49     Titel:
  Antworten mit Zitat      
Hallo Mr. Radar,

auch Newbie-Fragen werden hier beantwortet, sogar wenn die Fragen nicht zum ersten Mal kommen. Smile

Antwort 1: Am einfachsten ist es, die Filter nicht als Matrizen m1, m2, ... zu erzeugen, sondern gleich als Elemente einer so genannten cell. Das geht mit geschweiften Klammern:

Code:
m{1} = ...
m{2} = ...


oder in einer Schleife natürlich.

Antwort 2: Das geht so:
Code:
matrix_3D(:,:,1) = m1;
matrix_3D(:,:,2) = m2;
% oder
matrix_3D = cat(3,m1,m2,m3,...,m12);


Statt der "..." muss man aber alle Matrizen aufzählen! Smile

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Mr.Radar
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 28.08.08
Wohnort: ---
Version: 7.4.0
     Beitrag Verfasst am: 29.08.2008, 22:16     Titel:
  Antworten mit Zitat      
hm, wenn ich

Code:

for i= 1:12
    erodedImg(:,:,i) = imopen(img,SE{i});
end
 


ausführen will, bekomm ich
Code:
??? Subscripted assignment dimension mismatch.

warum dieses?! AFAIK bleibt bei imopen die return-matrix gleich groß wie die img-matrix, unabhängig davon, wie groß die SE-matrix ist (die SE{i} sind nämlich nicht gleich groß - das sollte aber egal sein...)

EDIT: Problem gelöst - hatte vergessen, img auf greyscale zu konvertieren, wodurch jedes einzelne ergebnis von imopen selbst schon dimension (x,y,3) hatte.
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 - 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.