Verfasst am: 03.02.2014, 10:58
Titel: Zentrum von Zellen festlegen
Hallo ihr,
habe folgendes Problem:
Ich habe ein Bild von verschieden Zellen(Fläche in rgb) und auf dem nächsten Bild habe ich dieselben Maße, jedoch werden da nur noch die Zellkerne (Fläche in rgb Image) angezeigt. Jetzt möchte ich gerne die Zellkerne als Zentren der Zellen vom voherigen Bild festlegen um dann mit Hilfe von watershed unterscheiden zu können, ob ich eine oder mehrere zusammenhängende Zellen habe und deren Flächen zu bestimmen.
Aktuell würde ich es aber gerne mit einer einfachen Zwischen lösung probieren, d.h. wenn ich eine Fläche habe, die mehr als einen Zellkern enthält, dann soll er mir diese Fläche durch die Anzahl der enthaltenen Zellkerne teilen.
Wäre nett, wenn mir jemand weiterhelfen könnte, bin Neueinsteiger in Matlab.
DIe doc zu regionprops habe ich mir schon durchgelesen, aber leider keine nützliche Hilfe daraus ziehen können.
Leider keine Image Processing Spezialist, aber kannst du dir nicht die Position von dem Umkreis bzw. Kontur der Zelle besorgen und dann einfach überprüfen ob die Position des gefundenen Zellkerns innerhalb der Kontur liegt?
Danach Abfragen in welcher Kontur mehr wie ein Zellkern liegt und die dann nochmal betrachten.
Finde diese Lösung ganz gut, war auch gerade dabei, es über die Fläche zu machen, meine Idee war, die Fläche nur noch zu betrachten und zu schauen wie viele Zellkerne sich daran befinden, indem ich die Zellkerne wie obig identifiziere und eine
Mein großes Problem bei dieser Lösung aber auch deinem Vorschlag ist, dass ich nicht weiß, wie ich es schaffe nur noch auf die einzelne Fläche (der einen Zelle die ich betrachte) zuzugreifen ...
Ich hab mir gerade mal die Befehle die du verwendest angeschaut. Habe bisher noch nichts in Matlab mit Bildverarbeitung zu tun gehabt aber wenn ich es nicht komplett falsch verstehe dann müsste doch mit:
dir die Indizes deiner ROI zurück gegeben werden. VL. lohnt es sich auch vorher die einzelnen Regionen die du unterscheiden möchtest zu labeln damit du einfacher darauf zugreifen kannst. Denke
sollte dir das relativ einfach zurückgeben. Wenn ich es richtig verstehe bekommst du eine Matrix mit 1 bis n Werten. Dabei stehen 1 an allen Stellen an der das erste Objekt ist, 2 an Stellen vom zweiten Objekt usw.
Hoffe hilft ein wenig. Ich meine mich auch an ein Beispiel für das zählen von Bakterien zu erinnern. Vl. hilft google da auch nochmal etwas weiter.
Wenn etwas unverständlich ist einfach nochmal nachfragen .
Das mit bwlabel ist schon ziemlich hilfreich, habe nun alle meine Gegenden damit labeln können.
Aber muss leider gestehen, habe keine Ahnung, wie ich dem Programm jetzt sagen soll, dass es nur diese Gegend anschauen soll, habe es mal wie folgt versucht:
Code:
L =bwlabel(bw4,4);
for i = 1:size(idx2,1) if L == i % hiermit wollte ich auf die Gegenden mit Index 1 zugreifen, % macht er aber leider nicht, weiß nicht, was ich da % auswählen muss
q = regionprops(bw42,'all'); % Dann von diesen Gegenden die % Eigenschaften
idx = find([stat.Area]);
ifsize(idx,1) == 1
M(i,1) = cellarea_in_sqmicrons(i) else
M(i,1) = 0;
end else
M(i,1) = 0;
end end
Danke für die Rückmeldung. Freut mich das es funktioniert hat.
Viele Grüße
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
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.