주요 콘텐츠

houghpeaks

허프 변환에서 피크 식별

설명

peaks = houghpeaks(H,numpeaks)는 허프 변환 행렬 H에서 피크를 찾아 해당 피크의 (row, column) 좌표를 반환합니다. 함수는 최대 numpeaks개의 피크를 반환합니다.

예제

peaks = houghpeaks(H,numpeaks,Name=Value)는 이름-값 인수를 사용하여 작업의 여러 면을 제어합니다. 예를 들어, 값이 15 이상인 피크만 고려하려면 Threshold=15를 지정합니다.

예제

모두 축소

영상을 작업 공간으로 읽어 들인 후 영상을 표시합니다.

I  = imread("circuit.tif");
imageshow(I)

영상의 중심을 기준으로 반시계 방향으로 영상을 50도 회전합니다. 그런 다음 영상에서 경계를 찾습니다.

Irot = imrotate(I,50,"crop");
BW = edge(Irot,"canny");
imageshow(BW)

회전된 영상에 대해 허프 변환을 계산합니다.

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

영상의 허프 변환에서 가장 강한 2개의 피크를 찾아 플로팅합니다.

P  = houghpeaks(H,2);
imshow(H,[],XData=T,YData=R);
xlabel("\theta")
ylabel("\rho")
axis on
axis normal
hold on
plot(T(P(:,2)),R(P(:,1)),"s",Color="red")

Figure contains an axes object. The axes object with xlabel theta, ylabel rho contains 2 objects of type image, line. One or more of the lines displays its values using only markers

입력 인수

모두 축소

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

데이터형: double

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

데이터형: double

이름-값 인수

모두 축소

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

예: P = houghpeaks(H,2,Threshold=15)는 피크로 간주할 최솟값을 15로 지정합니다.

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

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

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

데이터형: double

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

데이터형: double

직선에 대한 법선 방향의 각도(단위: 도)로, [-90, 90) 범위의 요소를 갖는 숫자형 벡터로 지정됩니다. 각도는 x축에서부터 시계 방향으로 측정됩니다. 벡터의 각 요소는 허프 변환 행렬 H의 대응하는 열에 대한 theta 값을 지정합니다. houghpeaks 함수는 피크 억제를 위해 Theta 값을 사용합니다.

참고

hough 함수를 호출하고 Theta 이름-값 인수를 지정한 경우, 이 값을 hough 함수가 반환하는 theta 출력 인수로 설정하십시오. 그렇지 않으면 houghpeaks 함수는 피크 억제에 대해 예기치 않은 결과를 반환할 수 있습니다.

데이터형: double

출력 인수

모두 축소

발견된 피크의 행과 열 좌표로, q×2 행렬로 반환되며, 여기서 q는 발견된 피크의 수입니다. 값 q의 범위는 0 ~ numpeaks일 수 있습니다.

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨