一、android-gocr
NDK产生共享库文件
将gocr的src源码放在gocr/jni/ 文件夹内,并在该路径下添加Androd.mk文件。
Android.mk
因为最后一句是include $(BUILD_EXECUTABLE) ,所以最后生成的是可执行 文件。
执行命令:ndk-build NDK_PROJECT_PATH=/home/GOCR/andorid-gocr/sources/gocr
最后生成/gocr/libs/armeabi/gocr可执行文件:
Install : gocr => libs/armeabi/gocr
这个可执行文件可以通过以下方式运行:
djpeg -pnm -gray SomeSmallImage.jpg > someimage.pnm
adb push someimage.pnm /data/local
adb shell /data/local/gocr /data/local/someimage.pnm
因为目标是生成共享库文件,所以include $(BUILD_EXECUTABLE )改为include $(BUILD_SHARED_LIBRARY ),最后生成:
Install : libgocr.so => libs/armeabi/libgocr.so
二、Native 接口设计
1.在Android项目中添加JAVA接口类,这个接口要能实现这样的功能:传入pnm图片的路径(字符串),执行后能返回识别出的文字(字符串)。
GocrJni.java
2.在Android项目通过调用本地方法
3. 本地实现 jni/gocr.c
三、Bitmap转PNM(PBM, PGM, and PPM)
(需要代码实现一个转换器,Linux现有的转换工具有DJPEG)
【参考】
环境
http://www.ideasandroid.com/archives/224
移植
http://blog.csdn.net/fsfcvictor/archive/2010/10/28/5972044.aspx
Android.mk
http://fanwei51880.blog.163.com/blog/static/3240674020111149375810/
makefile
http://www.huihoo.org/gnu/linux1/makefile.html
gocr
http://android-gocr.sourceforge.net/
http://code.google.com/p/wordsnap-ocr/issues/detail?id=3
wordsnap
http://code.google.com/p/wordsnap-ocr/
Native接口设计
http://blog.csdn.net/Zengyangtech/archive/2010/12/05/6055913.aspx