Trabalhar com OCR no Android

7 respostas
L

Salve Moçada Bunita do GUJ!

Bem... estou desenvolvendo uma aplicação para android na qual o cliente capturará uma imagem e dela selecionará uma area da imagem a ser manipulada pelo tesseract....

Ou seja... A pessoa vai "tirar uma foto" de um texto e selecionará uma area dessa imagem para que seja transformada em texto....

A parte da selecao da area eu já desenrolei: vide....

O que está pegando agora é a implementação do Tesseract....

Eu tentei seguir este tutorial até criei o projeto no Eclipse e chamei-o no meu projeto...

E criei esta função:
public void ClickBotao(){
		btGerarOCR.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
				Bitmap bitmap = ActivityMarcacaoCampos.this.IVSelecionar.getImagem().copy(Bitmap.Config.ARGB_8888, true);
				
				TessBaseAPI baseAPI =  new TessBaseAPI();
				baseAPI.init(DATA_PATH, "en");
				baseAPI.setImage(bitmap);
				String lido = baseAPI.getUTF8Text();
				baseAPI.end();
				
				//Alerta("Ainta nao está criada esta função :(", "OCR lido na imagem:");
			}
		});
	}

Que quando um certo botão é clickado ele pega uma imagem e "OCeRra" ela...

porém retorna este erro:


07-31 10:14:53.421: E/AndroidRuntime(26420): java.lang.ExceptionInInitializerError
07-31 10:14:53.421: E/AndroidRuntime(26420): at com.compras.ActivityMarcacaoCampos$1.onClick(ActivityMarcacaoCampos.java:80)
07-31 10:14:53.421: E/AndroidRuntime(26420): at android.view.View.performClick(View.java:2485)
07-31 10:14:53.421: E/AndroidRuntime(26420): at android.view.View$PerformClick.run(View.java:9080)
07-31 10:14:53.421: E/AndroidRuntime(26420): at android.os.Handler.handleCallback(Handler.java:587)
07-31 10:14:53.421: E/AndroidRuntime(26420): at android.os.Handler.dispatchMessage(Handler.java:92)
07-31 10:14:53.421: E/AndroidRuntime(26420): at android.os.Looper.loop(Looper.java:130)
07-31 10:14:53.421: E/AndroidRuntime(26420): at android.app.ActivityThread.main(ActivityThread.java:3687)
07-31 10:14:53.421: E/AndroidRuntime(26420): at java.lang.reflect.Method.invokeNative(Native Method)
07-31 10:14:53.421: E/AndroidRuntime(26420): at java.lang.reflect.Method.invoke(Method.java:507)
07-31 10:14:53.421: E/AndroidRuntime(26420): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
07-31 10:14:53.421: E/AndroidRuntime(26420): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
07-31 10:14:53.421: E/AndroidRuntime(26420): at dalvik.system.NativeStart.main(Native Method)
07-31 10:14:53.421: E/AndroidRuntime(26420): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load lept: findLibrary returned null
07-31 10:14:53.421: E/AndroidRuntime(26420): at java.lang.Runtime.loadLibrary(Runtime.java:429)
07-31 10:14:53.421: E/AndroidRuntime(26420): at java.lang.System.loadLibrary(System.java:554)
07-31 10:14:53.421: E/AndroidRuntime(26420): at com.googlecode.tesseract.android.TessBaseAPI.(TessBaseAPI.java:47)
07-31 10:14:53.421: E/AndroidRuntime(26420): ... 12 more

Alguem pode me ajudar??

Eu também vi o Tesjeract.... que é o JNI do Tesseract....

Alguem já trabalhou com ele?? tem alguma diferença??

Obrigado pela atenção!
Qualquer ajuda será bem vinda!
Fiquem com DEUS!

Edit: O erro está apontando para a linha:
TessBaseAPI baseAPI =  new TessBaseAPI();

No editor do Eclipse quando você pressiona "Ctrl + Space" ele até aparece a opção do "TessBaseAPI"... e quando execulta ele diz que não foi implementado :/

7 Respostas

M

Falta alguma biblioteca nativa que deve ficar em /libs

L

Alguém aii já trabalhou como Tesseract e pode me passar o link para re-Download do projeto Tess-Two??

Pois eu baixei mas não me lembro onde…

Pois é… A questão é o que está faltando :wink:

Grato pela atenção!

Fiquem com DEUS!

L

Mas Marky esta /lib seria a do meu projeto ou a do Tess-Two(projeto do Tesseract)?

Grato pela a atenção e desculpa o encomodo :smiley:

L

Galerinha alguem ai já ao menos trabalhou com OCR?? Foi no android???

Este tal de Tesseract é bem completo… porém… não está dando certo comigo…

Alguem sabe alguma outra FrameWork ou algo do tipo que eu possa usar para desenvolver o OCR no android??

Fiquem com DEUS!

L

Bem galerinha dando uma “bizoiada” no codigo eu vi q o erro está retornando nessa linha:

Que vem seguida desta:

Ambas estão na Classe: TessBaseAPI.java que está no projeto do tess-two

Obrigado pela atenção!

L

Bem galerinha… Pelo visto os tutoriais q eu vi ensinam a desenvolver pelo linux… Porém eu não tenho PC com linux… Alguém sabe um jeito para solucionar isso?

Obs.: pelo q vi na internet o uso do MinGw ou programas do genero não dao jeito :confused:

Grato pela atenção e fiquem com DEUS:!:

R

Cara esse OCR que vc utilizou converte para portuguesBrasil?

Criado 31 de julho de 2012
Ultima resposta 12 de mar. de 2014
Respostas 7
Participantes 3