Verfasst am: 23.01.2012, 00: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...
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');
%% 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))
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
bei mir wird alles korrekt ausgegben mit dem testvektor a
kann dir leider nicht sagen woran das liegt
Options and Permissions
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
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.