Verfasst am: 23.05.2013, 19:13
Titel: Zählen von Zellen
Hallo
Ich habe mehrere Bilder mit mehr als 300 zellen ich habe die vorverarbeitet und segmentiert, jetzt will ich der Anzahl der Zellen automtisch bestimmen und in ein excel datei die ergebnisse automatisch speichern, wie kann ich das in matlab machen.
kann mir jemand helfen
danke
Verfasst am: 24.05.2013, 10:21
Titel: Zählen von zellen
erstmal danke für deine Antwort
das ist das erstmal wo ich in ein Forum was schreibe und ich dachte wenn ich mein Frage unter das Thema Bildverarbeitung stelle ,wäre besser deswegen habe ich das nochmal gestellt . die antworten die ich gekriegt habe , haben nicht weiter geholfen .
Ich denke, es ist wichtig, zunächst die Zellen sauber zu trennen. So dass sie als einzelne Zellen erkannt werden. Für das Zählen brauchst du dann die Funktionen - in dieser Reihenfolge:
ja die zellen habe ich sauber getrennt , ich habe das heute versucht CC = bwconncomp(BWImage); CC.NumObject ; geht auch nicht , ich kriege immer ans = 1 obwohl ich mehr als 100 zelle habe .
Die Funktionen sind nicht das Problem. Das Problem in der Bildverarbeitung ist, dass man die Bilder nicht kennt. Es nützt wenig, auf die Funktionen abzuheben, wenn man die eigentliche Problematik, nämlich das Bild nicht kennt. Ich vermute aber, dass wir beide unter "sauberer Trennung" etwas anderes verstehen. Siehe dir mal folgendes Beispiel an. Es zeigt, was gemacht werden muss, damit die Objekte auch gezählt werden können:
Quelle: The Mathworks
Code:
BW1=imread('circbw.tif');
subplot(2,1,1,); imshow(BW1)
SE=strel('rectangle',[4030]);
BW2=imerode(BW1,SE);
subplot(2,2,3); imshow(BW2)
BW3=imdilate(BW2,SE);
subplot(2,2,4); imshow(BW3) [L,n]=bwlabel(BW3);
RGB=label2rgb(L,'spring','c','suffle');
figure; imshow(RGB)
stats=regionsprobs(L);
hold on
for i=1:length(stats) text(stats(i).Centroid(1),stats(i).Centroid(2),num2str(i)) end
wenn ich diesen code mit mein bild probiere kriege ich diesen fehlern, ich weiss nicht wie kann nicht das zählen ich habe alles versucht klappt nicht. segmentireung war aber ganz einfach
Error using label2rgb>parse_inputs (line 170)
Valid entries for ORDER are 'shuffle' or 'noshuffle'.
Error in label2rgb (line 50)
[label,map,zerocolor,order,fcnflag] = parse_inputs(varargin{:});
Error in beipe2 (line 12)
RGB=label2rgb(L,'spring','c','suffle');
Ich kann im Moment keine codezeilen kopieren, sondern nur eintippen. Da ist mir ein Fehler unterlaufen. Die Fehlermeldung zeigt aber, wie der richtige Befehl lautet, nämlich: >>shuffle. Geschrieben habe ich leider. >>suffle. Sorry!
Sorry, aber auch das ist mein Fehler. Richtig ist: regionprops. Wenn du mal wieder solche Fehlermeldung bekommst, gebe einfach das Wort in Matlab-Help ein und du bekommst die korrekte Schreibweise angezeigt.
Ich kann mich nur wiederholen. Es nützt nichts, wenn du nur Codezeilen sendest!
Bei deiner Aufgabenstellung kommt es auf den Bildinhalt an uns sonst nicht. Außerdem reicht es nicht aus, nur die von mir gezeigten Beispiele 1:1 zu übertragen. Sowohl im Beispiel "Blobsdemo" und im zuletzt gesendeten Beispiel sind zunächst eine Reihe von Variablen, die man ändern muss, um zu sehen, was dann passiert. Außerdem sind dort einige Funktionen genannt, mit denen man sich ausgiebiger beschäftigen muss. In Help findest du dazu weitere Funktionen, die etwas "ähnliches" machen.
Das Ganze ist für mich nur Rätselraten. So rate ich mal, dass du mit der Funktion: Seg(BWoutline)=255; einen Umriss von den Zellen bekommst. Siehe dir mal ganz intensiv die Beispiele an. Dort sieht man geschlossene Flächen!
Ich glaube, dein Code führt dich nicht weiter, weil er auch eine unwesentliche Funktion "filter2" enthält. Was die macht weiß ich schon, nur was macht sie mit deinem Bild. Welches Problem steckt in deinem Bild, dass du diese Funktion anwendest.
Wenn dein Ausgangsbild vom Inhalt her bereits problematisch ist, z.B. zu hell/dunkel oder unscharf. Oder das Bild rauscht. Dann muss man zunächst dort beginnen und für eine saubere Ausgangsbasis sorgen.
Orientiere dich an den beiden Beispielen und spiele mit den Variablen oder Funktionen.
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.