2012-02-12 6 views
0

계산 :자바 (이미지 분석)의 모양 방향 이와 같은 내가 이미지가

enter image description here

을 나는 그것의 방향을 계산해야합니다. 이 경우 모양이 화면 왼쪽 상단을 가리키고 있습니다. 3 또는 4 개의 계산이 실제 오리엔테이션에서 5도 이내로 평균적으로 움직이는 한 정확도는 그리 중요하지 않습니다 (약간 움직일 것입니다).

누구든지이 작업을 수행하는 알고리즘을 알려줄 수 있습니까? 방향이 double 또는 vector로 반환되는지는 상관하지 않습니다.

+0

모양이 어떤 모양인지 항상 알고 있습니까? 회전 중심이 어디인지 아십니까? 모양이 항상 같은 크기입니까? –

+0

@PeterLang - 진지하게? 이미지를 링크해야 했나요? 나는 이것을 성공적인 트롤로 인정할 것입니다. – Perception

+0

트롤이 없습니다. 그것은 T 자형이지만, 색상 역치를 사용하여 모양을 다시 얻습니다. 분명히 가장자리는이 방법을 사용하여 완벽하지 않으므로 위와 같은 모양을 반환합니다. 우리는 그것을 심각하게 유지하려고 노력할 수 있습니까? 회전 중심은 모양의 중심에 가깝고 항상 같은 크기입니다 (몇 퍼센트 이상 변하지 않음). 모양은 동일해야합니다. 그것이 바뀌는 유일한 시간은 카메라가 대처하기에 너무 빨리 조명이 변하는 경우이며 일부 픽셀을 놓치는 경우입니다. 위의 예는 "좋은"예입니다. –

답변

0

해결 방법은 Convex Hull Algorithm을 사용하는 것이 었습니다.이 방법은 바운드가있는 모양을 묶는 데 필요한 최소 수의 점을 찾습니다.

0

이미지가 항상 T 자형이면 가장 먼 쌍의 픽셀을 얻은 다음 에서 가장 멀리있는 쌍을 찾을 수 있습니다. 둘 중 하나 (T의 가장자리), 다른 하나는 더 멀리 있습니다. 두 개, 그 중 하나에서 그 둘의 중간 점까지 선을 그린다.

가운데 선을 기준 모서리와 비교하고 각도가 실제로 중간이 될 때까지 각도와 간격을 조정하여 T 기준을 찾는 방법으로 더 세분화 할 수 있습니다.

+0

하지만 그 쌍을 가장 멀리 찾으면 다시 발견하게 될 것입니다. 검색에서 이러한 점을 제외하면 T가 완벽하지 않으므로 옆에있는 픽셀을 찾을 수 있으므로 비대칭 성이 매우 높습니다. –

+0

이것은 내가 사용하는 방법이지만 조명으로 인해 T 모양이 바뀌면 실패합니다. 이것은 원래의 질문 범위를 넘어선 것이지만 어떤 생각입니까? –

0

확실한 해결책은 불가능합니다. 이미지 인식이 필요하기 때문입니다. 2D 이미지를 축에 투영합니다. 즉, 이미지의 너비와 높이를 가져 와서 이러한 값에서 방향 벡터를 가져 와서 구성 요소로 가져옵니다.

+0

정확히 내가 필요로하는 것처럼 들리지만 어떻게 "프로젝트"합니까? –

+0

이미지는 어떻게 표현 되었습니까? 종종 그것은 2 차원 배열에 있습니다. 그런 다음 각 행을 합산하십시오. 합계 열을 얻고 각 열을 합합니다. 합계 행을 얻을 수 있습니다. 이 행과 열이 존재 범위를 결정합니다. 흰색 및 컬러 픽셀에 대한 값에 따라 다릅니다. 'x1'에서'x2'까지의'x '와'y1'에서'y2'까지의'y'가 있다고 가정하십시오. 그러면 당신의 벡터는'{x2-x1, y2-y1} '이됩니다. 또한 당신은 어디서 시작이고 어디서 끝나는지를 알아야합니다. 아마 당신은 "뚱뚱한"부분의 위치로 이것을 결정할 수 있습니다. –

0

첫째, 가정의 몇 :

  1. 중심과 중심이
  2. T의 하강 줄이 긴 크로스 바

첫 번째보다 "가까운"입니다 결정 이미지의 경계 사각형을 찾고이 사각형을 따라있는 이미지의 점을 찾으십시오. 선을 따라 놓여 있고 서로 일정한 거리에있는 점 (예 : 5 픽셀로 값 선택)은 해당 클러스터에서 1 점만 가져 가야합니다. 마지막에는 3 점, 즉 삼각형이 있어야합니다. 삼각형의 가장 짧은 변은 (가정 2로부터) 크로스 바이어야하며, 즉 가장 가까운 두 점을 찾아야한다. 두 점을 교차하는 선에 수직 인 선은 방향 선입니다. 즉, 선과 수평 축 사이의 각도를 찾으십시오.

0

나는 이미지를 단순화하기 위해 morphological skeletonization을 시도하고, 골격의 긴 다리의 방향을 결정하는 간단한 알고리즘을 시도합니다.

+0

환상적입니다. 확실히 나는 시험에 흥미가있을 것입니다. –