Main Content

houghpeaks

허프 변환에서 피크 식별

설명

예제

peaks = houghpeaks(H,numpeaks)hough 함수로 생성된 허프 변환 행렬 H에서 피크를 찾습니다. numpeaks는 식별할 피크의 최대 개수를 지정합니다. 이 함수는 피크의 행 좌표와 열 좌표가 있는 행렬 peaks를 반환합니다.

peaks = houghpeaks(H,numpeaks,Name,Value)는 이름-값 쌍 인수를 사용하여 작업의 여러 면을 제어합니다.

예제

모두 축소

영상을 작업 공간으로 읽어 들입니다.

I  = imread('circuit.tif');

이진 영상을 만듭니다.

BW = edge(imrotate(I,50,'crop'),'canny');

영상의 허프 변환을 만듭니다.

[H,T,R] = hough(BW);

영상의 허프 변환에서 피크를 찾고 플로팅합니다.

P  = houghpeaks(H,2);
imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit');
xlabel('\theta'), ylabel('\rho');
axis on, axis normal, hold on;
plot(T(P(:,2)),R(P(:,1)),'s','color','white');

Figure contains an axes object. The axes object contains 2 objects of type image, line.

입력 인수

모두 축소

허프 변환 행렬로, 숫자형 배열로 지정됩니다. 행과 열은 rho 값과 theta 값에 해당합니다. hough 함수를 사용하여 허프 변환 행렬을 만듭니다.

데이터형: double

식별할 피크의 최대 개수로, 양의 정수로 지정됩니다.

데이터형: double

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: P = houghpeaks(H,2,'Threshold',15);

피크로 간주할 최솟값으로, 음이 아닌 숫자로 지정됩니다.

데이터형: double

억제 이웃의 크기로, 양의 홀수 정수로 구성된 요소를 2개 가진 벡터로 지정됩니다. 억제 이웃은 피크가 식별된 후의 각 피크 주위의 이웃으로, 0으로 설정됩니다. NHoodSize의 디폴트 값은 size(H)/50보다 크거나 같은 홀수 중 가장 작은 값입니다. NHoodSize의 차원은 허프 변환 행렬 H의 크기보다 작아야 합니다.

데이터형: double

허프 변환 theta 값으로, hough 함수가 반환하는 숫자형 벡터로 지정됩니다. 벡터의 각 요소는 출력 행렬 H의 대응하는 열에 대한 theta 값을 지정합니다. houghpeaks는 피크 억제에 지정된 theta 값을 사용합니다. hough 함수를 사용하여 허프 변환 행렬을 만듭니다.

참고

'Theta' 파라미터를 hough 함수에 대한 입력값으로 지정하는 경우 houghpeaks 함수에 theta 파라미터를 지정해야 합니다. hough 함수의 theta 출력값을 houghpeakstheta 입력값으로 사용하십시오. 이렇게 하지 않으면 피크 억제가 예상치 못한 결과를 만들 수 있습니다.

데이터형: double

출력 인수

모두 축소

발견된 피크의 행과 열 좌표로, Q×2 행렬로 반환됩니다. 값 Q의 범위는 0 ~ numpeaks일 수 있습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

|