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

Zählen von Zellen

 

titussa
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2013, 19:13     Titel: Zählen von Zellen
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.05.2013, 06:17     Titel:
  Antworten mit Zitat      
Moin,

vielleicht hilft das weiter:

http://www.mathworks.com/matlabcent.....tation-tutorial-blobsdemo

Viele Grüße - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.05.2013, 07:22     Titel:
  Antworten mit Zitat      
Warum stellst du diese Frage noch einmal. Du hast sie bereits unter:

http://www.gomatlab.de/viewtopic,p,114688.html#114688

gestellt und auch eine Antwort erhalten!
Private Nachricht senden Benutzer-Profile anzeigen
 
titussa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2013, 10:21     Titel: Zählen von zellen
  Antworten mit Zitat      
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 .
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.05.2013, 10:31     Titel:
  Antworten mit Zitat      
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:

bwlabel > label2rgb > regionprops

Im Netz gibt es dazu eine Menge Beispiele.
Private Nachricht senden Benutzer-Profile anzeigen
 
titussa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2013, 10:41     Titel:
  Antworten mit Zitat      
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 .
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.05.2013, 11:09     Titel:
  Antworten mit Zitat      
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',[40 30]);
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
Private Nachricht senden Benutzer-Profile anzeigen
 
titussa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2013, 11:31     Titel:
  Antworten mit Zitat      
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');
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.05.2013, 11:35     Titel:
  Antworten mit Zitat      
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!
Private Nachricht senden Benutzer-Profile anzeigen
 
titussa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2013, 11:39     Titel:
  Antworten mit Zitat      
hi
das habe jetzt korrigiert aber ich habe trotzdem diese fehler

Undefined function 'regionsprobs' for input arguments of type 'double'.

Error in beipe2 (line 15)
stats=regionsprobs(L);
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.05.2013, 11:41     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
titussa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2013, 11:52     Titel:
  Antworten mit Zitat      
das ist mein code
Vorverarbeitung
Code:
x=imread('bild.tif');

h = fspecialfspecial('unsharp',0.5);
I2 = filter2(h,x);
d=mat2gray(I2);
imshow(d)

segmentation

Image=d;
Threshold=graythresh(Image);
Image_BW=im2bw(Image,Threshold);

BWoutline=bwperim(Image_BW);
Seg=d;
Seg(BWoutline)=255;
figure,imshow(Seg)

bevor dass ich was du mir geschickt schreibe, konnte ich das segmentierte bild sehen , jetzt kommt ein lila figure und an der mitte steht 1

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.05.2013, 12:01     Titel:
  Antworten mit Zitat      
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!
Private Nachricht senden Benutzer-Profile anzeigen
 
titussa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2013, 12:07     Titel:
  Antworten mit Zitat      
ok
trotzdem vielen danke für deine hilfe , ich versuch weiter , ich bin neu in matlab deswegen komme ich nicht klar damit.
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.05.2013, 12:15     Titel:
  Antworten mit Zitat      
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.

Viel Glück
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.