2014-09-09 4 views
2

나는 이미지의 이러한 유형을 인식하는 OCR 프레임 워크를 사용하려고 통해 하나의 문자 인식 :이 두 문자 G.자바 - 이미지

enter image description here

내가 asprise에서 aocr.jar를 사용하여 시도

있습니다 , 하지만이 코드는 트릭을하지 않는 것 같습니다.

import com.asprise.ocr.Ocr; 
import java.io.File; 
public class textRecognizer { 

    public static void main(String args[]){ 
     Ocr.setUp(); 
     Ocr ocr = new Ocr(); 
     ocr.startEngine("eng", Ocr.SPEED_FAST); 
     String s = ocr.recognize(new File[] {new File("C:\\Users\\juchtdi\\Pictures\\letter.png")}, Ocr.RECOGNIZE_TYPE_ALL, Ocr.OUTPUT_FORMAT_PLAINTEXT, 0, null); 
     System.out.println(s.length());  
     System.out.println(s); 
     ocr.stopEngine(); 
    } 
} 

누구나 아이디어를 얻을 수 있습니까? 결국 다른 프레임 워크와 함께?

감사합니다 :)

편집 : 컴파일은 런타임 예외없이 갔다. s.length()가 0을 반환했습니다. 그래서 그는 아무것도 읽지 않는 것 같습니다.

이미지를 실제 텍스트 이미지로 바꿀 때 텍스트가 완벽하게 출력됩니다.

가 나는 G

+1

이미지가 너무 어려워 보입니다. 그 프레임 워크를 처리 할 수있는 프레임 워크가 있다고 확신합니까? – Simon

+0

전혀 확실하지 않습니다. 기본적으로 거기에 있기를 바란다. 또한 Java 프레임 워크가되어야합니다. 또한 BackSlash에 감사드립니다. – dendimiiii

+0

질문을 개선하십시오 : 당신은 무엇을 기대 했는가, 어떻게 실패하고 당신은 무엇을 시도 했습니까? – llogiq

답변

2

나는 이미지의 상당한 전처리없이 이미지에서 문자를 인식하는 OCR 프레임 워크를 얻을 수 있다고 생각하지 않습니다를 반환 할/희망 예상했다.

    : 여기

    는 (그때는 그것이 작동을 보장 할 수 없습니다 그것은 많은 일이고, 심지어 임계 값 등을 함께 조정을 많이 필요) 시도 할 수있는 몇 가지 전처리에 대한 대략적인 아이디어
  1. 각 점에 대해 점을 둘러싼 점 밀도를 계산하고 점 밀도가 낮은 위치에있는 모든 점을 필터링합니다.
  2. 다음 중 하나를 수행하십시오. a) 형태학을 사용하여 하나의 대상체를 만들어보십시오. b) 문자의 윤곽선을 찾아서 유역 알고리즘을 사용하여 채 웁니다.
  3. 이전처럼 OCR을 실행하십시오.
+0

나는 당신의 솔루션이 최고라고 믿지만, 매개 변수화는 악몽이다. 도처에 "많은"점들이 있기 때문에, 저밀도 인 것을 정의하는 것은 매우 어려울 것입니다 ... – rlinden

+0

당신의 대답에 감사드립니다. 아프다.이 생각을 기초로 무언가를 시도해보고 노력하십시오. 고맙습니다! – dendimiiii