|
|
Segmentierung der obersten Retinaschicht |
|
Numi |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 22.01.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.01.2012, 23:14
Titel: Segmentierung der obersten Retinaschicht
|
|
Hallo Leute,
ich muss im Rahmen einer Projektarbeit die oberste Schicht der Retina(auf einem Oct Bild dargestellt) segmentieren. Nach einigen Schleifen/Filter hab ich das Bild bzw. Matrix (496x768) in folgender Form vorliegen:
0 0 0
0 0 0 0
0 0 1 1
0 1 0 0
1 1 0 0
0 1 0 0
0 0 0 0
Ich muss nun eine Schleife erstellen, die jede Spalte abläuft und die erste 1 markiert und die Werte dann in einem Vektor speichert. Weiß jetzt aber nicht wie die Schleifen aussehen bzw wie ich den Vektor in die Schleifen einbauen soll...
Ich hoffe es kann mir jemand weiterhelfen
|
|
|
|
|
haxenmaxen |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.01.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.01.2012, 11:05
Titel:
|
|
Musst du denn eine for-Schleife bauen - das dauert ziemlich lange. Aber so in etwa würde es auch gehen:
%% Beispiel
a = [0 0 0 0;0 0 0 0;0 0 1 1;0 1 0 0;1 1 0 0;0 1 0 0;0 0 0 0];
%% 1'en in einen Vektor packen
[indexX indexY] = find(a);
%% erste 1 markieren
ersteEins = [indexX(1) indexY(1)];
%% oder auch so erste Eins finden
[ersteEinsX ersteEinsY] = find(a,1,'first');
PS: find läuft spaltenweise durch dein bild - also es ist auch wirklich die erste Eins erst nach Spalten gesucht
|
|
|
Numi |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 22.01.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.01.2012, 16:13
Titel:
|
|
zunächst einmal danke , dass du dir die zeit genommen hast nur ich versteh das noch nicht so ganz: also hab versucht meine Werte einzusetzen und es kam nichts brauchbares heruas:S
%%1'en in einen Vektor packen ---> hab ich so verstanden, dass ein Vektor der Größe 1 x768 (--> mein Bild(imgFilter) 496x768 groß ) erstellt werden soll
[indexX indexY] = find(size(imgFilter,2));
%% erste 1 markieren
ersteEins = [indexX(1) indexY(1)];
%% oder auch so erste Eins finden --> ist das eine andere möglichkeit? wenn ichs eingeb spuckts mir den ersten xWert aus, der eine eins enthält nämlich 184...aber es sollten mehrere Werte sein...also es läuft nicht über alle spalten
[ersteEinsX ersteEinsY] = find(imgFilter,1,'first');
könntest du das vll etwas genauer erklären ??
|
|
|
haxenmaxen |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.01.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.01.2012, 17:22
Titel:
|
|
achso jetzt habe ich verstanden was du machen musst
ok dann hier wäre ein bsp dafür (jetzt doch mit for-Schleife )
a = [0 0 0 0;0 0 0 0;0 0 1 1;0 1 0 0;1 1 0 0;0 1 0 0;0 0 0 0];
%% 1'en in einen Vektor packen
alleEinsen = []; %leerer Vektor in den die Indizes der 'Einsen' hineinkommen
for i=1:size(a,2) % von 1 bis Anzahl der Spalten
[ersteEinsX] = find(a(:,i),1,'first'); % die erste Eins in der Spalte
alleEinsen = [alleEinsen; i ersteEinsX]; % Indizees in einen Vektor packen
end
%% Ausgabe
% Zeile der ersten Eins in erste Spalte
disp(alleEinsen(1,2))
% Zeile der ersten Eins in zweiter Spalte
disp(alleEinsen(2,2))
|
|
|
Numi |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 22.01.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.01.2012, 18:13
Titel:
|
|
hey ich hab schon die richtigen Werte danke nur ein kleines problemchen die Größe vom vektor stimmt nicht so ganz.Es sollte 1x768(=Anzahl der Spalten) sein, bekomm aber 1x757 raus....hab folgendes eingegeben:
alleEinsen = []; %leerer Vektor in den die Indizes der 'Einsen' hineinkommen
for i= 1:size(imgFilter,2) % von 1 bis Anzahl der Spalten
[ersteEinsX] = find(imgFilter(:,i),1 ,'first'); % die erste Eins in der Spalte
alleEinsen = [alleEinsen, ersteEinsX]; % Indizees in einen Vektor packen
end
[alleEinsen; i ersteEinsX]; --> kam bei mir leider error raus
danke nochmals für deine antworten )
|
|
|
haxenmaxen |
Forum-Newbie
|
|
Beiträge: 7
|
|
|
|
Anmeldedatum: 22.01.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.01.2012, 11:51
Titel:
|
|
eigentlich müsste es korrekt sein.
bei mir wird alles korrekt ausgegben mit dem testvektor a
kann dir leider nicht sagen woran das liegt
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|