2011-09-23 4 views
2

나는 android app에 대해 연구하고있다. 필요한 것은 traineddata 파일의 경로 (init tesseract)입니다. 리소스를 원시로 설정하는 것이 가장 좋은 방법 인 것처럼 보입니다.tesseract-android-tools (android)에 대한 교육 자료 가져 오기

나는이 방법으로 자원 ID를 얻고있다 (파일 이름은 다음과 같습니다 deu.traineddata) :

int rID = resources.getIdentifier("deu", "raw", "my.code.package"); 

OK '제거'> 0, 지금 스트림을 받고 :

InputStream is = resources.openRawResource(rID); 

확인 ' '! = null입니다.

byte[] bytes = new byte[is.available()]; 
is.read(bytes); 

내가 자산에서 파일을 읽을 수도 노력하지만, InputStream로부터 읽어 같은 문제는 다음과 같습니다 하지만 지금 읽고, 문제를 받고는 IOException이없이 스택 추적과 함께 던져왔다 '이다'. 내가 잘못하고있는 것, 리소스 경로를 가져 오는 다른 방법이 있습니까? thanx andrej

답변

2

tesseract-android-tools (jni 아래)의 원시 코드를 보면 라이브러리가 파일에 액세스하는 것을 볼 수 있습니다. 나는 지금 같은 배에 타고있다. 일부 파기 후에, 내 계획은 프로젝트와 함께 자원으로 traineddata 파일을 저장하고로드시 개인 파일에 기록하는 것입니다.

부하에

이 존재하지 않는 경우, 개인 파일을 을 확인 원시 디렉토리에서 traineddata을로드하고 개인 파일에 기록 :

의사 코드는 다음과 같은 것입니다. tesseract를 개인 파일로 초기화하십시오.

심판 : 일부 시도가 작동하지 않았다 후 http://developer.android.com/guide/topics/data/data-storage.html#filesInternal http://developer.android.com/guide/topics/resources/providing-resources.html

건배

+0

, 그래서 나는 traineddata를 다운로드 tesseract 서버에서 직접. 탄약 어떤 식 으로든. – andrej