Ich arbeite derzeit an Bildverarbeitungsprojekt. Ich benutze Opencv2.3.1 mit VC++. Ich habe den Code so geschrieben, dass das Eingabebild nur zu blauer Farbe gefiltert und in ein Binärbild umgewandelt wird. Das Binärbild hat einige kleine Objekte, die ich nicht möchte. Ich wollte diese kleinen Objekte eliminieren, also benutzte ich die Methode cvFindContours()
von openCV, um Konturen im binären Bild zu erkennen. aber das Problem ist, ich kann die kleinen Objekte in der Bildausgabe nicht beseitigen. Ich habe cvContourArea()
Funktion verwendet, aber nicht richtig funktioniert .., erodierte Funktion auch nicht richtig funktioniert.Konturen opencv: Wie kleine Konturen in einem Binärbild zu beseitigen
Also mir bitte jemand bei diesem Problem helfen ..
Das binäre Bild, das ich erhalten:
Das Ergebnis/Ausgabe-Bild, das ich erhalten möchten:
Danke für den Vorschlag, aber ich bin nicht dabei, wie man den Code schreibt, um den Bereich jedes Blobs/Kontur zu finden, der erkannt wurde. Der Code, den ich geschrieben habe, steht unter folgendem Link. Kannst du es bitte korrigieren und antworten. : http://textuploader.com/?p=6&id=YwRl. –
oh! Ich habe nur vergessen, die Header-und CPP-Datei für cvutility finden Sie in diesen Links: http: //textuploader.com/? P = 6 & id = Dtnvj http://textuploader.com/?p=6&id=TSlRQ Bitte fügen Sie sie in Quellverzeichnis und Include-Pfade. –
Ich bin nicht vertraut mit der CAPI, aber es sieht so aus, als ob Sie nur den Bereich der ersten Kontur berechnen. Sie müssen die Konturen durchlaufen und nur diejenigen zeichnen, deren Fläche größer ist als ein Schwellenwert. Wenn Sie nur versuchen, das eine Objekt zu finden, sollten Sie die Kontur mit der größten Fläche zeichnen. – fferen