그리드 같은 구조를 탐지하기위한 허프 변환의 대안


16

격자 모양을 형성하는 여러 개의 '각도'로 구성된 이미지가 있습니다.

여기에 이미지 설명을 입력하십시오

일부 검색 후 Hough는 줄 바꿈으로 인해 문제를 일으키지 않기 때문에 적합한 것으로 보입니다. 그러나 내가 가진 문제는 내 선이 '지방'이고 내가 실행하는 가장자리 감지 (이 경우 캐니)가 중간이 아닌 선의 가장자리를 선택한다는 것입니다.

여기에 이미지 설명을 입력하십시오

이것은 Hough 변환이 중간이 아닌 그리드 선의 '변'중 하나 (또는 ​​둘 다)를 골라내는 것을 의미합니다.

여기에 이미지 설명을 입력하십시오

내가 찾고있는 것을 알고 있다면 (이 격자 모양의 모양은 항상 거의 같은 방향으로) 중심선을 제공하기 위해 '가장자리 감지'부분을 수행하는 더 좋은 방법이 있습니까? 완전히 다른 방법으로?


상황에 따라이 그리드는 공칭 그리드와 비교되어 Tsai 카메라 보정을 수행합니다.
Benjol

"가장자리 감지를 실행하고 선의 가장자리를 선택합니다"예, 가장자리 감지가 가장자리를 융기 부분으로 변환하고 이미지가 이미 융기 부분 이기 때문 입니다. 가장자리는 밝고 어두운 경계입니다.
endolith

답변:


10

Hough Transform은이 경우 그리드를 선택하는 데 실제로 도움이됩니다. 선을 "얇게"하기 위해 골격 화 작업을 고려할 수 있습니다.

그러면 다음과 같은 이미지가 생성됩니다. 골격 화 출력

스켈레톤 화가 작동하는 방식으로 인해 그리드와 관련이없는 것처럼 보이는 일부 선이 생성되지만 "잘못된"방향을 향한 이러한 선은 Hough Transform의 선 감지를 혼동하기에 많은 수 (적어도 주어진 이미지에서는)가 아닙니다 너무 많아서 두 가지 주요 라인 세트를 분명한 방향으로 선택합니다. (HT 출력 결과는 다음과 같습니다.) 여기에 이미지 설명을 입력하십시오

MATLAB을 사용하는 경우이 도움말 페이지 를 확인 하십시오.


감사! 이것은 많은 도움이됩니다. MATLAB 라이센스를 아직 얻지 못했지만 AForge의 SimpleSkeletonization을 사용하여 시도했지만 더 완벽하게 작동하지만 여전히 완벽하지는 않습니다. 나중에 테스트 할 실제 데이터를 얻을 때이 주제를 다시 검토 할 것입니다.
Benjol

"최적의"뚱뚱한 격자 선을 생성하는 것으로 보이는 일부 임계 값에서 원래 이미지의 임계 값을 먼저 시도 할 수 있습니다. 내가 최적의 의미는 적어도 연결되어 있다는 것입니다. 스켈레톤 화의 성능을 향상시킬 수 있지만 추가 임계 값 (임계 값)을 결정해야합니다. 이미지 획득을 향상시키는 방법도 살펴볼 가치가 있습니다.
A_A

예, 말했듯이 실제 데이터를 가지고 있으면 시스템을 미세 조정하는 것이 가치가 있습니다. 일반적으로 Hough에 대해 한 가지 큰 의문은 세타의 이산화가 필요한 서브 픽셀 정밀도에 맞지 않을 것이라는 것입니다. (즉, 나는 완전히 렌즈 수차는 선이 있다는 것을 의미하지 않습니다 확신 아니에요 ... 더 직선, 곡선 없습니다)
Benjol

11

Hough Transform의 대안은 Radon Transform ( 1 , 2 )입니다. 그리드 형 구조를 감지하는 알고리즘에 대한 대략적인 설명은 다음과 같습니다.

1. Perform Radon Transform from 0 to 180 degrees.
2. Find the two highest maxima in the angle bins.
3. For the two angles with maximal amplitude find the local maxima within the bin.
4. You can use the constraint that the maxima should have even spacing to deal with outliers.

편집 :

1-3 단계를 설명하기위한 작은 MATLAB 스 니펫은 다음과 같습니다.

im = imread('grid.png');
[R, xp] = radon(im, 0:180);
imagesc(0:180, xp, R)

라돈 변환의 결과

plot(max(R)) % the two maxima are at 65 & 117 degrees

모든 각도에서 Maxima

plot(R(:, 65))

65도에서 막심

plot(R(:,117))

117도에서 막심

의견에서 귀하의 질문에 대답하려면 : 귀하가 제공 한 하나의 예제 이미지 에서이 방법이 감지 된 그리드의 작은 결함에 대해 더 강력하다는 것이 나타납니다. 스켈레톤은 직선을 거의 생성하지 않으므로 후속 Hough Transform에 불리 할 수 ​​있습니다.


고마워요, 허프 변환에 비해 라돈 변환이 나에게 어떤 이점을 줄 수 있는지 몇 마디 말해 주실 수 있습니까?
Benjol

@ benjol, 나는 대답을 업데이트했다.
bjoernz

대단히 감사합니다. IT 부서에서 Matlab에 액세스 할 수있게되면 시도해 볼 것입니다!
Benjol

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.