문제점 :라벨의 이중 배열을 세분화
나는 다양한 라벨로 채워진 대형 더블 (2 차원) 배열을 가지고있다. double 배열의 각 요소 (셀)에는 레이블 집합이 들어 있고 double 배열의 일부 요소는 비어있을 수 있습니다. 이중 배열의 요소를 개별 세그먼트로 클러스터링하는 알고리즘이 필요합니다. 세그먼트는 이중 배열에서 인접한 픽셀 집합과 세그먼트의 모든 픽셀이 공통으로 갖는 레이블 하나로서 정의됩니다. 대각선 인접성은 계산되지 않으며 빈 셀을 클러스터링하지 않습니다. 구 개 요소에 분포 레이블 상기 구성에서
|-------|-------|-------|
| Jane | Joe | |
| Jack | Jane | |
|-------|-------|-------|
| Jane | Jane | |
| | Joe | |
|-------|-------|-------|
| | Jack | Jane |
| | Joe | |
|-------|-------|-------|
, 최대 규모의 클러스터는 네 왼쪽 상단 세포를 점유 "제인"클러스터입니다.
내가 이중 배열의 모든 셀의 모든 라벨을 반복 검사에서 셀 라벨 조합이 기존 세그먼트와 연관 될 수 있는지 확인하기 위해 테스트를 생각했습니다 내가 고려했습니다 무엇
. 검사중인 요소가 기존 세그먼트와 연관 될 수없는 경우 새 세그먼트의 첫 번째 구성원이됩니다. 레이블/셀 조합이 기존 세그먼트와 연관 될 수 있으면 레이블/셀 조합이 연관됩니다.
물론이 방법을 합리적으로 만들기 위해서는 정교한 해싱 시스템을 구현해야합니다. 기존 세그먼트에 인접한 셀 레이블 조합을 모두 추적해야하며 이중 배열을 통해 반복되는 인덱스가 증가하는 경로에 있어야합니다. 이 해시 방법은 인접성을 찾기 위해 모든 기존 세그먼트의 모든 픽셀을 반복해야하는 번거 로움을 피할 수 있습니다.
나는 그것을 좋아하지 않아 이유 :
을있는 그대로, 고려 이중 배열의 요소는 두 개의 독특한 세그먼트의 하나와 연관 될 수있는 경우를 고려하지 않습니다 위의 알고리즘 수평 방향으로 하나, 수직 방향으로 하나씩. 이러한 사례를 올바르게 처리하려면이 특정 사례에 대한 테스트를 구현 한 다음 검사중인 요소를 세그먼트와 연결 한 다음 인접한 두 개의 동일한 세그먼트를 연결하는 메서드를 구현해야합니다.
전체적으로이 방법과 필요한 복잡한 해싱 시스템은 매우 우아하지 않습니다. 또한 이중 배열에서 큰 세그먼트를 찾는 것에 대해서만 신경을 쓰고 세그먼트 알고리즘의 정확도보다이 알고리즘의 속도에 훨씬 더 관심이 있습니다. 따라서 더 나은 방법을 찾고 있습니다. 나는 이것을 생각한 적이없는 확률적인 방법이 있다고 가정합니다.
제안 사항?
편집 :
내 원하는 출력 세그먼트의 목록은, 라벨과 지점의 목록 인 각 세그먼트. - 이미지 세트, 독특한 라벨 당 하나의 같은 배열을 고려
Segment 1 - Jane: (1,3), (2,3), (1,2), (2,2)
Segment 2 - Joe: (2,3), (2,2), (2,1)
"이중 배열 "? 2 차원의 것처럼? "이중"이라고 들으면 "데이터 유형"이라고 생각합니다. 다른 사람? –
2 차원 ... 매트릭스 또는 비트 맵처럼. – Amichai
"숙제"인 경우 레이블을 붙이십시오. – dplass