Пример Тессеракта для Iphone - PullRequest
8 голосов
/ 25 февраля 2010

Я скомпилировал 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' предупреждение: тип по умолчанию 'int' в объявлении 'PAGE_RES' предупреждение: определение данных не имеет типа или класса хранения

и т. Д. С BLOCK_LIST, IMAGE и т. Д.


если скомпилировать для симулятора, я получу

ошибка: ожидается '=', ',', ',' asm 'или' атрибут 'до' PAGE_RES ' и так далее с BLOCK_LIST, IMAGE и TessBaseAPI

--- Другое обновление: Я нашел решение проблемы включения: В тех случаях, когда происходит включение, необходимо переименовать файл.m в расширении .mm, потому что мы должны сообщить xcode, что мы должны использовать target-c и c ++ вместе.

Ответы [ 2 ]

11 голосов
/ 08 марта 2010

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.

Программа предназначена только для демонстрации библиотеки OCR и ее возможностей на iPhone, программа никак не оптимизирована ...

2 голосов
/ 21 октября 2010

вам нужно обновить SDKROOT, CPPFLAGS и CXX переменные. Например, вот соответствующая часть моего сценария сборки, модифицировано для работы с 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
...