TiTesseract-for-iOSをインストール&実行
- Titanium SDK : 3.2.2.GA
数字を認識するアプリを作りたくて、Titaniumで文字認識を行えるモジュールではTiTesseractが良さそうだったので使ってみました。
インストールと実行でちょっと躓いた点があったので、利用方法をメモっておきます。
インストール
GithubのInstallationに一応手順は書いてるのだけど、フォルダ構成がこんなかんじで書かれていて見難かったりするので
Directory or file the following should have been added. . ├── example │ └── tessdata ├── Tesseract.h ├── Tesseract.mm ├── leptonica ├── liblept.a ├── libtesseract_all.a └── tesseract
インストール(モジュールのzipを作る)までをまとめていきます。
必要なもの
- stumsky/TiTesseract-for-iOS · GitHub
- ldiqual/tesseract-ios · GitHub
- ldiqual/tesseract-ios-lib · GitHub
- Downloads - tesseract-ocr - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. - Google Project Hosting
以上の4つをダウンロードし、解凍。
1.まず、TiTesseract-for-iOSを解凍したものに、
の2つをぶっこみます。
Tesseract.hには
#import <UIKit/UIKit.h>
を追加。
2.tesseract-ios-libの中にある、
- tesseract-ios-lib-master/include/tesseract
- tesseract-ios-lib-master/include/leptonica
- tesseract-ios-lib-master/lib/liblept.a
- tesseract-ios-lib-master/lib/libtesseract_all.a
の4つをまたまたTiTesseract-for-iOSを解凍したものにぶっこみます。
tesseract-ocrはここではまだ使いません。
Build
上記の手順が完了したらTerminalで
cd TiTesseract-for-iOS
python build.py
を事項すると、たぶん
- net.appios.titesseract-iphone-1.1.0.zip
というファイルが生成されるはずです。
生成されない人は頑張りましょう。
モジュールインストール
モジュールインストールする手順は割愛します、ググって下さい。
使用方法
<module platform="iphone" version="1.1.0">net.appios.titesseract</module>
をtiapp.xmlに記述します。
GithubのUsageとほぼ同じ内容になりますが、以下を.jsファイルに記述します。
var TiTesseract = require('net.appios.titesseract');
var ocrImage = Titanium.Filesystem.getFile(Titanium.Filesystem.resourcesDirectory + '/ocr.png');
var whitelist = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
var lang = 'eng';
var recognizedText = TiTesseract.recognizedText(ocrImage.toBlob(), lang, whitelist);
Ti.API.info("ocr.png -> " +recognizedText);
これで実行すると、
Tesseract couldn't load any languages!
みたいなエラーが出ると思います。
そしたら、ここでtesseract-ocrの出番です。
tesseract-ocrの中にtessdataというフォルダが有ると思います。そのフォルダを
Titanium_Studio_Workspace/xxxxxxxx/app/assets/
以下に設置して下さい。
設置し終わったら、実行してみてください。
[INFO] : ocr.png -> XXMP2X8H62DGPF 78
となるはずです、以上!