2차원 영상 좌표에서의 직선의 방정식을 파라미터 공간으로 변환하여 직선을 찾는 알고리즘
직선 성분과 관련된 원소 값을 1씩 증가시키는 배열
y축과 평행한 수직선 표현 못함 극좌표계 직선의 방정식 사용
방정식에 의한 파라미터 공간으로 변환
images : grayscale 엣지 영상
lines : 직선의 파라미터(rho, theta) 저장할 출력 벡터
rho : 축적 배열에서 rho 값의 간격
theta : 축적 배열에서 theta 값의 간격
threshold :축적 배열에서 직선으로 판단할 임계값
srn : 멀티스케일 허프 변환에서 rho 해상도를 나누는 값
stn : 멀티스케일 허프 변환에서 theta 해상도를 나누는 값
min_theta : 검출할 직선의 최소 theta 값
max_theta : 검출할 직선의 최대 theta 값
void HoughLines(InputArray image,
OutputArray lines,
double rho,
double theta,
int threshold,
double srn = 0,
double stn = 0,
double min_theta = 0,
double max_theta = CV_PI);
houghline
images : grayscale 엣지 영상
lines : 선분의 시작, 끝 좌표(x1, y1, x2, y2) 저장할 출력 벡터
rho : 축적 배열에서 rho 값의 해상도
theta : 축적 배열에서 theta 값의 간격
threshold : 축적 배열에서 직선으로 판단할 임계값
minLineLength : 검출할 선분의 최소 길이
maxLineGap : 직선으로 간주할 최대 엣지 점 간격
void HoughLineP(InputArray image,
OutputArray lines,
double rho,
double theta,
int threshold,
double minLineLength = 0,
double maxLineGap = 0);
houghline
HoughLines()와 HoughLineP()의 속도 비교
원 방정식 :
입력 영상과 동일한 2차원 평면 공간에서 축적 영상을 생성
엣지 픽셀에서 그래디언트 계산
그래디언트 방향에 따라 직선을 그리면서 값을 누적
원의 중심을 먼저 찾고 적절한 반지름을 검출
단점 : 여러 개의 동심원 검출 불가
image : 입력 영상
circles : (cx, cy, r) 정보
method : HOUGH_GRADIENT 또는 HOUGH_GRADIENT_ALT 지정
dp : 입력 영상과 축적 배열의 크기 비율
minDist : 검출된 원 중심점들의 최소 거리
param1 : Canny edge 검출기의 높은 임계값
param2 : HOUGH_GRADIENT 방법에서는 축적 배열 임계값
minRadius : 검출할 원의 최소 반지름
maxRadius : 검출할 원의 최대 반지름
void HoughCircles(InputArray image,
OutputArray circles,
int method,
double dp,
double minDist,
double param1 = 100,
double param2 = 100,
int minRadius = 0,
int maxRadius = 0);
HOUGH_GRADIENT
houghcircle
HOUGH_GRADIENT_ALT
houghcircle
HOUGH_GRADIENT와 HOUGH_GRADIENT_ALT의 속도 비교
HOUGH_GRADIENT
houghcircle
HOUGH_GRADIENT_ALT
houghcircle
HOUGH_GRADIENT와 HOUGH_GRADIENT_ALT의 속도 비교