2010-06-23 2 views
2

내 프로젝트의 경우 스캔 한 문서에 대한 이미지 사전 처리 라이브러리를 작성 중입니다. 현재 필자는 회선 제거 기능이 붙어 있습니다.스캔 한 이미지/문서에서 가이드 라인을 효과적으로 감지하고 제거하는 방법은 무엇입니까?

문제 설명 : 샘플 스캔 형태 :

Name* : ______________________________ 
Age* : ______________________________ 

Email-ID: |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_| 

참고 다음은 상기 조건이다 :

  • 스캔 된 문서는 많은 수직 및 수평 안내 라인을 포함 할 수있다. 라인의
  • 두께는 문서 자체가 제대로 인쇄되지 않습니다 1 픽셀의
  • 초과 할 수 있으며, 문서 배경 또는 선 색 수도
  • 잉크 팽만감이나 고르지 두께의 형태로 잡음이있을 수 있습니다

이제 내가하려는 것은이 선을 감지하고 제거하는 것입니다. 그렇게하면서 손으로 쓴 내용을 잃어서는 안됩니다.

해결 방법 : 현재 솔루션은 Java로 구현됩니다.

canny/sobel 가장자리 감지기와 임계 필터 (이미지를 흑백으로 만들기)를 조합하여이 라인을 감지했습니다. 이전 작업에서 흑백 픽셀 배열을 얻었습니다. 배열을 탐색하여 해당 픽셀의 광도가 지정된 bin 값 아래로 떨어지는 지 확인하십시오. 그리고 30 픽셀 (픽셀 단위의 최소 라인 길이)이 발견되면 제거합니다. 수직선에 대해서도 같은 작업을 반복하지만, 수평선이 없어지기 때문에 절단 될 것입니다.

솔루션이 작동하는 것 같지만. 그러나 같은 문제, 이미지의 문자가 제대로 다음 간격을하지 않는 경우 그것은 또한 라인으로 간주 입니다

  • 중복 문자

    • 제거가 있습니다.
    • 가장자리 감지의 출력 이미지가 흑백으로 표시됩니다.
    • 조금 느립니다. 일반적으로 2480 * 3508 이미지의 경우 약 40 초가 소요됩니다.

    제대로하고 효율적으로 수행하는 방법을 친절히 안내합니다. 오픈 소스 라이브러리가 있다면 직접 보내주십시오.

  • 답변

    1

    먼저

    덕분에, 나는 일반적으로 이미지 처리에 대해 아무것도 몰라 언급 할, 그리고 OCR 고집한다.

    은 여전히 ​​매우 간단한 휴리스틱 내 마음에 오는 :

    1. 별도의 픽셀을 연결 구성 요소에 대한 이미지.
      1. 는 더 이상 그 평균 문자 길이를 : 그것은 다음과 같은 추론 중 하나 이상을 사용하여 라인인지 아닌지 연결된 각 구성 요소의
      2. 결정?
      3. 다른 문자 근처에 표시됩니까? (잉크 팽창이나 아티팩트 제거).
      4. X 그 레이디 도와 Y 그래디언트가 충분히 큰가요? 이렇게하면이 연결된 구성 요소에 수평선 이상이 포함될 수 있습니다. 누군가과 같이, 수평 라인에 편지를 쓴다면 내가 볼 수

    유일한 문제는,이다 : 라인이 남아있을 경우에

    /\  ___ 
    /\ / \ 
        |__| |___/ 
    -|--|---|---|------------------ 
        | | \__/ 
    

    ,하지만 당신은이 문제를 처리해야 아무튼.

    내가 언급했듯이, 나는 결코 이미지 처리 전문가가 아니지만 때로는 매우 간단한 트릭이 작동합니다.

    +0

    감사합니다. Elazar. 이 프로젝트는 언젠가 보류되었습니다. 한편 일부 이미지 처리 및 패턴 인식 서류를 통해 나는 당신의 대답이 다소 실제 해결책이 될 것이라고 생각합니다. – Favonius

    +0

    @ Favonius, Thanks! 알게되어 기뻐. 여기에서 "공식"솔루션에 대한 링크로 업데이트하면 기쁩니다. –

    관련 문제