Iphone的Tesseract示例

时间:2010-02-25 16:12:38

标签: iphone tesseract

我已编译tesseract在xcode中使用它:http://iphone.olipion.com/cross-compilation/tesseract-ocr

我获取.a文件,将其作为iphone项目中的框架导入,并更新tesseract头文件的标题搜索路径。

所以现在我需要一个简单的例子才能开始。 我在http:// code.google.com/p/tesseract-ocr/中找不到任何内容,或通过Google搜索找到。

任何人都可以帮我给我一个起点(代码片段)..?! 很多谢谢!

- 后来我发现了这段代码:

#include "baseapi.h"


TessBaseAPI::InitWithLanguage(NULL, NULL, language, NULL, false, 0, NULL); char* text = TessBaseAPI::TesseractRect(imagedata, bytes_per_pixel, bytes_per_line, 0, 0, width, height); TessBaseAPI::End();


但是当我尝试编译设备时(只插入包含上述代码的include语句),我得到以下内容:

错误:'PAGE_RES'之前的语法错误 警告:在'PAGE_RES'的声明中默认为'int'类型 警告:数据定义没有类型或存储类

以及BLOCK_LIST,IMAGE等等。


如果我为模拟器编译

错误:在'PAGE_RES'之前预期'=',',',','asm'或'属性' 等等BLOCK_LIST,IMAGE和TessBaseAPI

---其他更新: 我找到了包含问题的解决方案: 必须在.mm扩展名中重命名file.m,因为我们必须告诉xcode我们必须同时使用objective-c和c ++。

2 个答案:

答案 0 :(得分:11)

http://github.com/nolanbrown/Tesseract-iPhone-Demo

  

OCRDemo是一个演示应用程序,它使用Tesseract库(http://code.google.com/p/tesseract-ocr/)作为在Mac OS 10.6下使用http://robertcarlsen.net/2009/07/15/cross-compiling-for-iphone-dev-884中的shell脚本编译的静态库。

     

该程序仅用于演示OCR库及其在iPhone上的功能,该程序未以任何方式进行优化......

答案 1 :(得分:2)

您需要更新SDKROOTCPPFLAGSCXX 变量。例如,这是我的构建脚本的相关部分, 修改为使用4.0:

export SDKROOT=$DEVROOT/SDKs/iPhoneOS4.0.sdk
export PATH=$DEVROOT/usr/bin:$PATH
# Set up relevant environment variables
export CPPFLAGS="-I$SDKROOT/usr/lib/gcc/arm-apple-darwin10/4.0.1/
include/ -I$SDKROOT/usr/include/ -miphoneos-version-min=4.0"
export CFLAGS="$CPPFLAGS -arch armv6 -pipe -no-cpp-precomp -isysroot
$SDKROOT"
export CPP="$DEVROOT/usr/bin/cpp $CPPFLAGS"
export CXXFLAGS="$CFLAGS"

Unix包

生成的动态库位置
 LIBPATH=$LIBFILE.dylib
    LIBNAME=`basename $LIBPATH`

export LDFLAGS="-L$SDKROOT/usr/lib/ -Wl,-
dylib_install_name,@executable_path/$LIBNAME"

将为ARM生成的静态库

LIBPATH_static=$LIBFILE.a
LIBNAME_static=`basename $LIBPATH_static`
# TODO: add custom flags as necessary for package
./configure CXX=$DEVROOT/usr/bin/arm-apple-darwin10-g++-4.0.1 CC=
$DEVROOT/usr/bin/arm-apple-darwin10-gcc-4.0.1 LD=$DEVROOT/usr/bin/ld --host=arm-apple-darwin