メインメニューを開く

差分

Xamarin.AndroidでTesseract-OCRを利用する

1,631 バイト追加, 2018年3月1日 (木) 02:52
ページの作成:「Googleオープンソースで公開してるTesseract-OCRXamarin.Androidから利用してみる。 == 手順例 == === NuGet === * NuGetか...」
[[Google]]が[[オープンソース]]で公開してる[[Tesseract-OCR]]を[[Xamarin.Android]]から利用してみる。

== 手順例 ==
=== NuGet ===
* [[NuGet]]から「Xamarin.Tesseract」を入れる。

=== 学習データ ===
* 学習データをダウンロードしてくる。
*: https://github.com/tesseract-ocr/tessdata/tree/3.04.00
* Assetsフォルダに「tessdataフォルダ」を作る。
*: ビルド時にエラーになるときはプロジェクトファイル(.csprojファイル)を開いて「tessdataフォルダ自体がアセットに追加されている」のを消せ。
* 「tessdataフォルダ」に学習データ(***.traineddata)を入れる。
*: 日本語であれば「jpn.traineddata」だ。
* 学習データ(***.traineddata)のビルドアクションを「AndroidAssets」にする
*: ビルドアクションは右クリックだ。

=== 実行例 ===
<source>
// 初期化
var tesseract = new TesseractApi(this, AssetsDeployment.OncePerInitialization);

// 引数はjpn.traineddataなら「jpn」
// 英語(eng.traineddata)と混在させる場合は「eng+jpn」などとする。
var result = await tesseract.Init("jpn");
if (!result)
{
throw new Exception();
}

// SetImageでOCRが実行される。
// ファイルパス指定でもStreamでもいける。
await tesseract.SetImage(image);

// OCRの結果はTextプロパティに格納される
_textView.Text = tesseract.Text;

</source>

日本語もそこそこ取れてはいるが微妙なレベルで悩ましい。

[[category: Xamarin.Android]]
匿名利用者