Rosetta Code 에서 발견 된 코드 를 사용하여 Hough 변환을 작성하고 있습니다. 이제 이미지의 모든 줄을 찾고 싶습니다. 그렇게하려면 허프 공간에서 각 피크의 ρ 및 θ 값이 필요합니다. 오각형의 샘플 출력은 다음과 같습니다.
허프 공간에서 보이는 '핫스팟'각각에 대해 단일 [θ, ρ] 좌표를 어떻게 찾을 수 있습니까?
Rosetta Code 에서 발견 된 코드 를 사용하여 Hough 변환을 작성하고 있습니다. 이제 이미지의 모든 줄을 찾고 싶습니다. 그렇게하려면 허프 공간에서 각 피크의 ρ 및 θ 값이 필요합니다. 오각형의 샘플 출력은 다음과 같습니다.
허프 공간에서 보이는 '핫스팟'각각에 대해 단일 [θ, ρ] 좌표를 어떻게 찾을 수 있습니까?
답변:
피크의 좌표를 찾은 다음 축을 사용하여 [θ, ρ] 좌표로 스케일을 조정합니다.
데이터가 얼마나 시끄럽고, 예상되는 허위 피크 수와 시간이 얼마나 많은지에 따라 몇 가지 방법이 있습니다. 가장 쉬운 레벨은 실제 피크 인 레벨을 선택하고 그 아래에있는 모든 데이터를 잘라낸 다음 각 피크에서 무게 중심을 수행하여 중심을 얻는 것입니다.
각 피크가 단일 픽셀이 될 때까지 이미지를 침식 / 교정 할 수도 있습니다.
File Exchange의이 코드는 모든 로컬 최대 값을 찾는 데 도움이됩니다. http://www.mathworks.com/matlabcentral/fileexchange/14498-local-maxima-minima
몇 줄을 찾고 싶은지 (이 경우 5 개)에 대한 지식이 있으면 Hough 점수가 가장 높은 5 개의 로컬 최대 값을 선택하면됩니다.
주어진 반지름에 대한 극댓값을 찾을 수 있습니다. 예를 들어 Hough 이미지를 창 에서 최대 값일 때만 피크를 최대 값으로 스캔합니다 .
두 번째 단계는 피크 위치를 서브 픽셀 정확도로 조정하는 것입니다. 이것은 포물선 피팅으로 수행 할 수 있습니다.
Hough 이미지의 값이 이고 가 2D 위치 라고 가정합니다 . 이제 최대화 하는 수정 벡터 를 찾고 싶습니다.. 이것은 Taylor 확장을 사용하여 작성할 수 있습니다.
보정 벡터는 다음
유한 차분 법에 의해 허프 이미지로부터 도함수를 계산할 수 있습니다 .
참고 인 헤 시안 매트릭스 및 2 벡터 (수평 및 수직 기울기)이고, 따라서 도 얻을 수있는 서브 픽셀 시프트를 지정하는 2 벡터이고 로컬 최대 화기의 정확한 위치.
위의 방정식은 때때로 1 픽셀 이상의 시프트를 생성 할 수 있습니다. 이 경우, 최대 값 근방은 포물선 모양이 아니므로 보정을 원하지 않거나 후보 최대 값을 떨어 뜨려야합니다.
center of gravity
합니까?