2014-01-21 2 views
0

오픈 CV 및 C++을 사용하고 있습니다. 나는 그것에 3 가지 색깔의 점을 가진 완전히 어두운 이미지를 가지고있다. 센터 좌표가 필요해. 어두운 이미지에 단 하나의 색상 점만 있으면 중심 좌표가 자동으로 표시됩니다. 그러나 3 개의 컬러 포인트로 어두운 이미지를 입력하면, 3 개의 컬러 포인트의 중심을 함께 맞추면 평균값을 얻습니다. 이것이 정확한 문제입니다. 그들의 개별적인 중심 좌표가 필요합니다.이미지의 원 중심점 개별 찾기

enter image description here

사람은 제발 할 수있는 방법을 제안 할 수 있습니다. 여기

감사

코드 쉽게 할 수있는 방법 http://pastebin.com/RM7chqBE

+0

코드 또는 적어도 알고리즘과 관련된 중요한 부분을 공유하면 도움이 될 것입니다. –

+0

예 붙여 넣기 bin에 코드를 붙여넣고 위의 내용을 편집했습니다. – Steph

+0

적어도 3 가지 방법이 있습니다. (더 쉬운 방법이 있습니다.) 1.'cv :: findContours' 메서드를 사용하여 발견 된 각 단일 윤곽의 중심을 계산합니다 (이미지의 모든 윤곽선이 그러한 점) 2. 각 단일 원을 찾으려면'cv :: HoughCircles' 메서드를 사용하십시오 (이미지에 다른 점이있을 수있는 경우) 3. 클러스터링 방법 (예 : k- 평균)을 사용하여 중심을 계산하십시오 (점 수/클러스터 수를 알고있는 경우) (4.)은 원 감지와 비슷한 일종의 얼룩 감지를 사용하지만 작은 원에도 사용할 수 있습니다. – Micka

답변

3

해결책을 찾았습니다!

  1. 부하 원본 이미지
  2. 등고선 벡터 및 계층
  3. findContours를 검출 할 필요가 색에 따라 강도 값의
  4. 설정 범위 그레이 원본 이미지로 변환 그레이 스케일
  5. 모멘트와 점의 벡터
  6. 좌표를 찾기 위해 각 윤곽을 반복합니다.
0

하나는 findContours 및 drawContours 기능을 사용하는 것입니다. 설명서에는 이미지의 연결된 구성 요소를 검색하는 방법을 설명하는 약간의 코드가 있습니다. 당신이 실제로하려고하는 것입니다.

예를 들어 자신이 만든 이미지에있는 모든 연결된 구성 요소를 그릴 수 있으며 모든 이미지에 이미있는 코드를 사용할 수 있습니다. 이렇게하는 것이 가장 효율적인 방법은 아니지만 실제로는 간단합니다. 여기

내가 내가 그것을 테스트 할 시간이 없어하지만 당신은 그것을 시도 할 수있는이 있지만 작동 잘 모르겠어요 그것을 http://pastebin.com/y1Ae3e2V

을 할 것이다 방법이다.

+0

나는 다시 시도했지만 여전히 작동하지 않습니다. 오류없이 실행되고 종료되며 중심 좌표를 반환하지 않습니다. 다음은 코드 http://pastebin.com/jb7YDvai입니다. – Steph