Les principes de la détection du cercle Hough et de la détection des lignes de Hough sont similaires. Pour les cercles, ils sont exprimés en C: (x, y, r) dans le système de coordonnées des paramètres.
fonction:
IMGProc.houghCircles (Image de tapis, circuits de tapis, méthode INT, double DP, double Mindist, double param1, double param2, int Minradius, int maxradius)
Description du paramètre:
Image: image source
Cercles: le vecteur de sortie du cercle détecté (x, y, r)
Méthode: la méthode de détection utilisée, il n'y a actuellement qu'un seul imgproc.hough_gradient
DP: L'inverse du rapport entre l'image de l'accumulateur au centre du cercle et l'image source
Mindiste: distance minimale entre les centres du cercle détecté
Param1: les paramètres correspondants de la méthode de détection définie par méthode. Pour Hough_gradient, il indique le seuil élevé de l'opérateur de détection de bord (le seuil bas est la moitié du seuil élevé), et la valeur par défaut est de 100
Param2: Les paramètres correspondants de la méthode de détection définis par méthode sont pour Hough_gradient, indiquant la valeur de seuil de l'accumulateur. Plus la valeur est petite, plus le cercle non lié est détecté
Minradius: le rayon minimum du rayon du cercle, par défaut est 0
Maxradius: Le rayon maximum du rayon du cercle, par défaut à 0 (si Minradius et Maxradius sont par défaut à 0, la fonction HoughCircles calculera automatiquement le rayon)
Exemple de code:
public static void main (String [] args) {System.LoadLibrary (core.native_library_name); Mat src = imgcodecs.imread ("f: //websbook_com_1589226.jpg"); Mat dst = src.clone (); Imgproc.cvtcolor (src, dst, imgproc.color_bgr2Gray); Mat Circles = new Mat (); Imgproc.houghCircles (dst, cercles, imgproc.hough_gradient, 1, 100, 440, 50, 0, 345); // imgproc.houghcricles (dst, cercles, imgproc.hough_gradient, 1, 100, // 440, 50, 0, 0); pour (int i = 0; i <circles.cols (); i ++) {double [] vCircle = circles.get (0, i); Point Center = nouveau point (VCircle [0], VCircle [1]); int radius = (int) math.round (vCircle [2]); // Circle Center IMGProc.Circle (SRC, Centre, 3, nouveau scalaire (0, 255, 0), -1, 8, 0); // contour de cercle imgproc.circle (src, centre, rayon, nouveau scalaire (0, 0, 255), 3, 8, 0); } Imgcodecs.imwrite ("f: //dst2.jpg", src); }Image source:
Image de sortie:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.