2014-11-23 1 views
1

저는 시계의 얼굴을 그림에 배치 한 다음 시간을 읽는 프로그램을 작성하려고했습니다. 일하는 것을 아주 잘하고, 시간을 읽는다.별로 그렇지 않다.Python (OpenCV)에서 Hough Line Transform을 사용하여 아날로그 시계에서 시간을 읽으십시오.

cv2.HoughLines 함수는 선이 놓이는 각도 (이미지 위쪽에서 측정)와 이미지의 왼쪽 위 모퉁이에서의 거리를 반환합니다. 약간의 조정을 한 후에는 각 코드의 코드를 한 줄씩 찾아 내도록 설득했지만, 지금은 실제로 시간을 읽을 수 없습니다.

적절한 수식을 사용하여 나는 그 라인의 교차점 (시계 중간)을 발견하고 한 번에 양방향으로 손을 따라 반복 할 수있었습니다. 이것은 각 손의 길이를 말해 줄 수 있습니다. (각자 따로 말할 수있게 해줄 수있을뿐만 아니라) 어느 방향으로 향하고 있는지 알려줍니다. 나는이 솔루션을 구현하는 것에 대해 상당히 주저합니다. - 어떻게 든 추한 것처럼 보일뿐만 아니라 특정 위험을 만듭니다. 예 : 반올림 문제로 인해 프로그램에서 잘못된 픽셀을 검사하여 줄 끝을 조기에 찾을 수 있습니다.

그럼 대체 솔루션을 제안 해 주시겠습니까?

답변

1

나는 내 문제를 해결할 수있었습니다.

나는 Hough Probabilistic Transform을 사용하기로되어있는 Hough Line Transform을 사용하려고 노력해 왔습니다. 내가 얻은 순간, 비슷한 기능으로 그려진 선을 그룹화하고, 길이별로 정렬하고, arcsine과 끝 부분의 위치를 ​​사용하여 wchich 손에서 정확한 각도를 찾았습니다.