Принципы обнаружения круга Хаф и обнаружения линий Хаф аналогичны. Для кругов они выражаются как C: (x, y, r) в системе координат параметров.
Функция:
Imgproc.houghcircles (Mat Image, Mate Currests, Int Method, Double DP, Double Mindist, Double Param1, Double Param2, Int Minradius, Int Maxradius)
Описание параметра:
Изображение: исходное изображение
Круги: выходной вектор обнаруженного круга (x, y, r)
Метод: используемый метод обнаружения, в настоящее время существует только один imgproc.hough_gradient
DP: обратное соотношение между изображением аккумулятора в центре круга и исходным изображением
Mindist: минимальное расстояние между центрами обнаруженного круга
PARAM1: соответствующие параметры метода обнаружения, установленного методом. Для hough_gradient это указывает на высокий порог оператора обнаружения краев (низкий порог составляет половину высокого порога), а значение по умолчанию составляет 100
PARAM2: Соответствующие параметры метода обнаружения, установленного методом, предназначены для Hough_Gradient, что указывает на пороговое значение аккумулятора. Чем меньше значение, не связанный круг обнаружил
Minradius: минимальный радиус радиуса круга, по умолчанию 0
MAXRADIUS: максимальный радиус радиуса круга по умолчанию до 0 (если и Minradius, и Maxradius по умолчанию до 0, функция Houghcircles автоматически рассчитывает радиус)
Пример кода:
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, круги, imgproc.hough_gradient, 1, 100, 440, 50, 0, 345); // imgproc.houghcircles (DST, Circles, imgproc.hough_gradient, 1, 100, // 440, 50, 0, 0); for (int i = 0; i <circles.cols (); i ++) {double [] vcircle = ruighles.get (0, i); Точечный центр = новая точка (vcircle [0], vcircle [1]); int radius = (int) math.round (vcircle [2]); // Circle Center Imgproc.circle (SRC, Center, 3, новый скаляр (0, 255, 0), -1, 8, 0); // круговой контур imgproc.circle (src, center, radius, new Scalar (0, 0, 255), 3, 8, 0); } Imgcodecs.imwrite ("f: //dst2.jpg", src); }Изображение источника:
Выходное изображение:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.