Hough Circle 탐지 및 허프 라인 탐지의 원리는 유사합니다. 원의 경우, 파라미터 좌표계에서 c : (x, y, r)으로 표현됩니다.
기능:
imgproc.houghcircles (매트 이미지, 매트 회로, int 메소드, 이중 DP, 이중 마인드, 더블 파라 1, 더블 파라 2, 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, circles, 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 = circles.get (0, i); 포인트 센터 = 새로운 포인트 (vcircle [0], vcircle [1]); int radius = (int) math.round (vcircle [2]); // Circle Center imgproc.circle (SRC, Center, 3, New Scalar (0, 255, 0), -1, 8, 0); // 서클 개요 imgproc.circle (SRC, 중심, 반경, 새로운 스칼라 (0, 0, 255), 3, 8, 0); } imgcodecs.imwrite ( "f : //dst2.jpg", src); }소스 이미지 :
출력 이미지 :
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.