2012-02-21 3 views
10

벽에있는 7 세그먼트 디스플레이의 일부 사진에 OCR을 적용하고 싶습니다. OpenCV에서 가장자리 감지 후 가장 좋은 관심 영역 찾기

  • 관심
  • 설정 지역 (캐니 에지 검출을 적용 이진 IMG 거짓 가장자리를
  • 임계 값 IMG을 줄이기 위해
  • 흐림 IMG를 그레이 스케일로

    1. 은밀한 IMG : 내 전략은 다음과 같다 ROI)는 숫자의 실루엣에 의해 주어진 패턴을 기본으로합니다.
    2. 비율 ROI 및 템플릿은 지역과 일치합니다.

    내 프로그램이 전체 이미지를 통해 템플릿을 찾을 필요가 없도록 ROI를 설정하는 방법은 무엇입니까? 발견 된 모서리 수에 대한 ROI를 설정하거나 누군가가 나를 도울 수있는 경우보다 유용한 것을 설정하고 싶습니다.

    나는 Cascade Classification and Haar를 찾고 있었지만 문제에 어떻게 적용해야할지 모르겠다. 여기

    가 된 후에 이미지입니다 전처리 및 에지 검출 : an image after being pre-processed and edge detected

    원래 이미지

    enter image description here

  • +2

    원본 이미지도 추가 할 수 있습니까? –

    답변

    3

    이 당신이 처리해야 모서리의 수의 대표 인 경우 픽셀 값을 단순히 합친 이진 이미지에서 ROI-finder 창을 슬라이딩하는 것과 같은 멋진 전략을 시도해 볼 수 있습니다. 값이 임계 값을 초과하지 않는 한 실행되지 않습니다. 그것은 모든 빈 표면을 최적화해야합니다.

    편집 : 일부 덜 순진한 접근 방식입니다. 사진이 잘 정렬되어 있고 (나쁘게 회전되거나 왜곡되지 않았 음을 알고있는 것처럼) 선험적 지식이 있다면, 높이가 낮은 낮은 화격으로 약간의 패스를 할 수 있습니다. x, y 차원에서 서로 다른 축척을 사용합니다. 양방향으로 잘 맞으면 ROI에 대한 단서뿐만 아니라 어떤 템플릿의 시작점 (너무 크고 너무 작은 격자가 한 번에 두 가장자리에 부딪치지 않음)에 대한 단서가 제공됩니다.

    블롭 탐지를 수행 한 다음 템플릿을 얼룩에 순서대로 적용 할 수 있습니다 (번호 매기기 세그먼트가 실수로 분할 된 경우 템플리트 일치 스코어가 임계 값 미만인 경우 병합 병합으로 되돌아 감). 블롭의 크기는 다시 적용 할 템플릿의 축척에 대한 힌트를 줄 수도 있습니다.

    +0

    이것은 내 원래 계획 중 하나입니다. 나는 저를 도울 수있는 덜 순진한 무엇인가가 있는지보고 싶습니다. – locorecto

    0

    우선 원본 이미지에 LED 디스플레이가 있고 조명 영역이 trest보다 높은 강도를 가지므로 원본 이미지에서 Yuv 색상 변환을 수행 한 다음 강도로 작업하십시오 평면 (Y)이다.

    다음으로 이미지가 제대로 정렬되어 있는지 (회전되지 않았 음) 알고 있다면 일반적인 가장자리 감지기가 아닌 가로 및 세로 가장자리 감지기를 별도로 적용하는 것이 좋습니다 (대각선에는 관심이 없습니다). 예 : 당신이 LED 세그먼트 사이의 간격을 닫으려면 팽창을 수행해야 할 수 있지만

    sobelx = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=5) 
    sobely = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=5) 
    

    그렇지 않으면 당신은 (숫자의 경계를 찾을 윤곽 감지 기능을 사용할 수 있습니다.

    다음으로 나는이 엣지 또는 윤곽선 검출 결과의 수평 및 수직 히스토그램을 구성 할 것입니다. 이렇게하면 많은 가장자리가 포함 된 이미지의 '바쁜'영역을 식별하는 데 도움이됩니다.

    마지막으로, 저는 Y 평면을 임계하고 템플릿을 사용하여 각 ROI를 탐색했습니다.

    관련 문제