2012-10-25 4 views
1

opencv에서 정확하게 원을 감지 할 수있는 방법이 있습니까? 나에게 좋은 결과를주는 변형을 사용했지만, 대부분의 경우, 대상과 주변의 빛 등이 나쁜 결과를 낳았으므로 허위 원 이외의 옵션을 찾고 있었기 때문에 정확한 탐지가 내 프로젝트에서 매우 중요합니다.정확하게 원을 감지하는 방법

내 기본 접근 방식은 실시간으로 찍은 이미지의 일부 구체를 찾는 것입니다. 나는 houghcircle을 사용하여 구체를 찾고 나중에 반경에서 계산을합니다.

배경이 평평하고 아무 것도 문제없이 감지 할 수 없지만 배경에 다른 물체가있는 방에서 이미지를 찍는 경우 감지하기가 어렵습니다. 그래서 다른 접근법을 찾고 있습니다.

+0

우리는 당신이 가지고있는 어려움의 예를 돕기 위해 이미지에 링크 할 것입니다. 또한, 귀하가 구체적으로 시도한 것을 우리에게 말하지 않습니다 ... 전처리가 귀하의 경우에 중요하다고 생각합니다. –

+0

@QuentinGeissmann ok, 기본 Approch는 이미지에서 일부 구체를 찾는 것입니다. 그래서 그들을 찾기 위해 houghcircle을 사용하고 나중에 계산할 값은 반경을 의미합니다. 배경이 평범하고 아무 것도 문제없이 감지 할 수 없다면, 나의 방에서 그 이미지를 찍고 있다고 가정합니다.이 경우 내 방의 배경은 언제나 발견 될 것입니다. 그래서 다른 approch을 찾고 있는데 –

+0

@QuentinGeissmann 또한 프로젝트를 기반으로 실시간 surrondings에서 이미지를 가져와야합니다. –

답변

3

나는 동그라미를 찾아야 할 비슷한 필요성을 가지고 있었고 거친 발견은 자극 탐지와 관련하여 아주 작은 일을했다. 사용 해보십시오.

  1. 윤곽선 감지, 윤곽선을 그리면 윤곽선을 그립니다.
  2. minEnclosingCircle을 사용하여 감지 된 윤곽 위에 원을 그립니다. 윤곽에서
  3. 당신은 반경과 X, Y 포인트

편집을 얻을 수 있습니다 :도() ContourArea를 사용하여 필터링 할 수 있습니다 주변의 작은 객체에 객체. 더 작은 윤곽선을 확인하고 제거하십시오.

이것은 호감 원 감지보다 잘 작동합니다. 행운을 빕니다

1

Junxx가 언급 한 바와 같이 조명 invarient는 내가 가진 대부분의 문제를 해결할 것입니다. 그림자, 빛 등등.이 답변을 찾는 사람에게 유용 할 수 있습니다.