2017-01-25 2 views
2

Ich möchte ein Objekt erkennen und habe versucht, die Houghcirles-Funktion von OpenCV, aber ich konnte nicht die besseren Parameter für alle Bilder erreichen und aber Threasholding konnte ich für den Kreis herausfiltern. Code ich verwendet habe, istKreis Erkennung: Parameter für Houghcricles

int main() 
{ 
// Load an image 
src = imread("occupant/cam_000569.png"); 
threshold(src,binary,52,255,0); 
imwrite("binary.png",binary); 
canny(src,canny,50,200,3); 
houghcircles(canny,circles,CV_HOUGH_GRADIENT,1,src.gray.rows/8,7,24,28); 

Nach Schwellwertbildung, ich das Bild unten zu bekommen und auch wenn es Störung enthalten ist, aber für einen Schwellenwert von 52 konnte ich das gleiche für alle anderen Bilder sehen, wo das Objekt ist klar, .

Nach der Verwendung der canny und houghcircles Funktion mit den genannten Parametern der Code. Ich konnte das gewünschte Objekt erkennen.

Aber das Problem ist, wenn ich die nächsten Bilder benutze den gleichen Schwellenwert Wert ist anwendbar, aber mit den gleichen Parametern für canny und Hoochcircles kann ich das Objekt nicht erkennen.

Also meine Frage ist, wie die Parameter für den Houghcircle zu wählen oder ist es möglich, das Objekt mit verschiedenen OpenCV-Funktion zu erkennen?

Antwort

1

Die bessere Lösung für diese Erkennung ist die Verwendung von Blob-Erkennung in C++ oder Regionprops in MATLAB und die Filterung nach Flächen- und Zirkularitätsberechnung.

2

Ich denke, das Hauptproblem hier ist die Beleuchtung. Probieren Sie die Histogrammentzerrung gefolgt von einer gewissen Glättung aus, bevor Sie den canny edge detector anwenden. Sie müssen eine Anzahl von Bildern machen und die canny- und Hough-Parameter schätzen, die für die meisten von ihnen gut funktionieren. Es ist unmöglich, Werte zu finden, die zu einer Erkennungsrate von 100% führen.

Eine weitere Option besteht darin, einen Objektdetektor für das Objekt, das Sie erkennen möchten, mithilfe von Haar- oder LBP-Funktionen zu trainieren. Das scheint einfach übertrieben zu sein, wenn das Objekt ein Kreis ist.

+0

Vielen Dank für die Idee. Ich bin sicher, Beleuchtung ist ein Grund. Aber meine Hauptfrage ist, wie man die Parameter für den HoughCircle wählt, insbesondere Parameter1 und Parameter2 für die Schwellenwertbildung. – Reddy2810

+0

@ Reddy2810 Die übliche Methode zur Auswahl von Parametern in solchen Fällen ist die "empirische Auswahl", bei der die Software auf einer großen Anzahl von Bildern aus der gegebenen Szene getestet wird und die Parameterkombination ausgewählt wird, die die besten Ergebnisse liefert. – Totoro