에지 검출기로 감지 된 에지 연결


14

canny edge detector에서 얻은 이진 이미지가 있습니다. 가장자리가 중앙에서 잘 감지되지 않아서 가장자리를 연결해야합니다. 모서리의 연결은 방향과 이웃에 따라 다릅니다. 정점이 임계 값 미만인 경우 (예 : 5 픽셀 미만) 정점을 연결해야합니다. 거의 선형 인 피처의 방향이 좋으면이 임계 값을 완화해야합니다. (이것이 가장 좋은 경우입니다.) 영상

Hough 변환을 시도했지만 직선이 없기 때문에 작동하지 않았습니다. 팽창과 침식도 좋지 않습니다. 그들은 이미지를 더 지저분하게 만듭니다.

내가 시도하는 접근법은 먼저 (와 MATLAB에서 bwmorph) 꼭지점과 노드를 감지 한 다음 별도의 기능으로 나뭇잎을 만드는 것입니다. 이것은 다음과 같이 수행됩니다.

  1. 3x3 창에서 스캔하고 이웃을 찾으십시오.
  2. 연결된 모든 개체를 순회하십시오.
  3. 선 (또는 이차 다항식)을 맞추십시오.
  4. 연결 가치가 있는지 여부를 기능별로 확인하십시오.

정점을 연결해야하는 의사 결정 부분이 까다로워서 구현이 간단하지 않습니다.


가지를 찾는 흥미로운 해결책을 찾았습니다. MATLAB은 노드에 위치를 쉽게 제공 할 수 있습니다. MATLAB은 연결된 기능에 레이블을 지정할 수도 있습니다. 하나의 연결된 기능을 선택할 수 있습니다. 노드를 찾으십시오. 이 노드를 0으로 설정하십시오. 기본적으로 기능을 분리하고 레이블을 다시 지정하십시오. 당신은 나무에 가지가 있습니다. 이것은 수동 프로그래밍이 덜 필요했고 결과는 괜찮아 보입니다. 일부 입력?
Naresh

연결 부분을 위해 이제 큰 기능을 찾고 더 신뢰할 수 있다고 생각합니다. 그런 다음 직선 인 경우 (피트니스 품질 확인) 극좌표로 변환하고 허프 변환과 같은 주변을 검색합니다. 큰 피처의 경우 검색 반경이 큽니다 (크기에 비례). 이 코드를 구현하고 있습니다. 도중에 결과. 댓글 pls.
Naresh

답변:


4

이것은 완전한 해결책은 아니지만 좋은 방향을 제시 할 것입니다.

기본적으로 모서리가 일치한다고 말하는 주요 기준은 무엇입니까? 에지의 "로컬"그라디언트는 일치하며 어느 정도까지 거리는 에지가 연속적인 시간에 대해 합리적입니다.

긴 직선과 같은 기하학적 모서리가있는 경우 Hough는 바로 매우 매끄럽게 작업합니다. 그러나 가장자리가 임의의 곡선 인 경우에는 작동하지 않습니다. 이 경우에도 곡선을 대략 조각 단위의 일정한 세그먼트 (여러분의 경우에는 충분)로 생각할 수 있으므로 로컬에서는 Hough를 사용해야합니다. 즉, 이미지의 작은 부분 (블록)이 Hough를 계산하고 일부 피크를 식별 할 수 있습니다. 이를 바탕으로, 허핑이 의미있는 갭을 생성하고 있다는 것을 식별 할 수 있습니다.

더 작은 간격이 채워지면 더 큰 간격을 차지하도록 동일하게 확장 할 수 있습니다. 피크는 더 많을 수 있지만 피크는 더 적을 수 있습니다.


고마워 Dipan, 나도 그렇게 생각했다. 비용이 많이 드는 작업이지만 정보를 추출 할 수 있습니다. 그러나 때때로 Hoguh transfomation은 나에게 연결된 선을 제공하지 않습니다. 허프는 완벽한 직선만을 관리합니다. 그리고 픽셀의 연결성을 신경 쓰지 않습니다. 직선상의 3 개 이상의 임의의 픽셀에 한 줄을 맞습니다. 내 가설을 코딩하고 있습니다. 추가 토론을 위해 여기에 결과를 게시 할 것입니다. Naresh
Naresh

θ

4

그것은 실제로 간단하지 않을 것입니다 ... 당신은 그래프 구조로 전체 작업을 시도 할 수 있습니다. 먼저 이미지에서 연결된 모든 픽셀을 추출하고 인접 노드가 가장자리와 연결된 그래프에 삽입하십시오. 일부 M 개 노드보다 작은 그래프를 버릴 수 있습니다 (이미지와 관련이없는 작은 점은 제외).

이 프로세스가 끝나면 연결이 끊어진 그래프 세트가 생깁니다. (이미지에서 판단하면 사이클이 있기 때문에 정확하게 나무가 아닙니다)

임의의 노드에서 시작하여 DFS를 수행하여 각 그래프의 극점 (각 그래프 주변의 극점 픽셀)을 찾을 수 있습니다 .

이 프로세스가 끝나면 연결이 형성 될 가능성이 높은 극단 점에 해당하는 각 그래프에 대한 픽셀 좌표 세트가 있습니다.

이제 가장 가까운 극단 점 (거리 <= 5)을 직선으로 간단하게 연결할 수 있습니다.

그러나 해당 극단 픽셀로 이어지는 선분의 ​​기울기를 고려하려면 해당 극단 픽셀에 도달하기 전에 N 픽셀에 "선을 맞추십시오". 따라서 N = 5이면 분기의 마지막 5 픽셀이 선을 추정하는 데 사용됩니다.

따라서 가장 가까운 이웃 쌍마다 이제 두 세그먼트를 연결해야하는지 판단하는 기준으로 사용할 또 다른 사항이 있습니다 (즉, 극점 거리 <= 5 픽셀 및 대략 동일한 선 경사).

분기의 팁 근처에 선이 들쭉날쭉하게 나타나서 경사 추정값을 왜곡시킬 수있는 노이즈의 영향을 최소화하려면 그래프에 단순화 단계를 적용 해보십시오 (이는 위의 DFS 외에). 그래프 구조 작업). 예를 들어, 선이 일부 컷오프보다 큰 각도로 "구부러지는"그래프의 후속 노드를 제거 할 수 있습니다 . 이러한 방식으로 이미지 픽셀에 의해 형성된 세그먼트의 더 큰 부분의 방향에 "간단한"선을 맞출 수 있습니다.

그것은 아마도 (당신이 게시 한 이미지로 판단) 대부분의 경우에 적절한 연결을 초래할 것이지만 여전히 도전적인 사례를 남길 것입니다. 예를 들어 연결 지점 근처에서 분기 중 하나가 중단 된 "Y"모양의 중단 된 패턴은 어떻게 연결됩니까? (즉, "블렌딩"하는 선분과 연결되어야하는 "연속"벤드가 있습니다). 이러한 사례가 얼마나 흔한 지 검토하고 나중에 연결 기준을 수정할 수 있습니다.

또한 이미지 획득을 개선하는 방법 (예 : 해상도 증가)을 조사해 볼 가치가 있습니다.


좋은 답변 감사합니다. 네, 당신의 관찰이 맞습니다. 나무가 아니므로 그래프를 만드는 것이 좋습니다. 이것은주기를 찾는 데 도움이됩니다. MATLAB은 대부분의 사람들이 가질 것이라고 생각할 수없는 bioinfo 도구 상자에 그래프를 구현했습니다. 가장 많이 갈 수있는 것은 이미지 처리 도구 상자입니다. Douglas-peucker도 제가 고려한 것입니다. 그러나 GIS 전문가와 상담 한 후에는 상황이 더 복잡해지고 교차 선이 생길 수 있음을 깨달았습니다. 또한 선을 만들기 위해 10 픽셀이 필요하기 때문에 그래프에서 다른 선 세그먼트를 봐야하며 이미 분기점이있을 수 있습니다.
Naresh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.