2011-11-21 8 views
2

나에게 들리는 사운드 나는 매트릭스를 구성하는 영역의 좌표를 추출하는 매우 기본적인 필요성을 가지고 있습니다.매트릭스에서 영역/영역 경계 가져 오기

예를 들어 설명해 드리겠습니다. 여기에 몇 가지 행렬이다 :

| A | B | D | E | F | G | H | I | J | 
| 1 | 0 | 0 | 0 | 2 | 2 | 2 | 4 | 4 | 4 | 
| 2 | 0 | 0 | 2 | 2 | 2 | 2 | 4 | 4 | 4 | 
| 3 | 0 | 0 | 2 | 2 | 2 | 3 | 3 | 4 | 4 | 
| 4 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 
| 5 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 
| 6 | 1 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 
| 7 | 1 | 0 | 0 | 0 | 1 | 1 | 3 | 0 | 4 | 
| 8 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 
| 9 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 
| 10| 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 

그리고 각 영역의 경계 값 (필요한 특별한 순서없이) 배열을 좀하고 싶습니다. 왼쪽 상단 영역에 대한

예 :

  • 값 : 0
  • 경계 : {A1, D1, B2, B3, 13}

당신이 대답 일부 라이브러리를 아십니까 이 코드를 직접 코딩해야합니까?

+0

샘플을 이해할 수 있는지 확실하지 않습니다. A1이 경계가 아닌 B1 또는 A2 인 이유는 무엇입니까? 테두리가 경계로 간주되지 않으면 A1이 경계가되어서는 안됩니다. –

+0

@Ron Warholic : 선이있을 때만 말단을주었습니다. 실제로, 당신의 제안은 역시 적합 할 것입니다. – apneadiving

답변

1

라이브러리가 있는지 확실하지 않은이 코드를 직접 작성했습니다.

차례로 각 지역을 고려해 볼 수 있습니다. 그럼 (내 생각)이 작동합니다 :

if (surrounding 8 squares has at least one with different region) 
{ 
    for each 3 squares, above, below, left and right 
    { 
     if (less than 3 are different, and the middle is different) 
     { 
      is a boundry 
     } 
    } 

    for each 3 squares, above, below 
    { 
     for each 3 squares, left, right 
     { 
      if(all 3 from outer loop and all 3 from inner loop are different) 
      { 
       is a boundry 
      } 
     } 
    } 

    not a boundry 
} 
else 
{ 
    not a boundry 
} 

다른으로 경계 사각형을 처리합니다.

+0

답변 해 주셔서 감사합니다. +1 – apneadiving

관련 문제