環境
Windows10 Pro 64bit
Visual Studio Community 2017
tesseractの導入
Visual Studio 2017
>ツール
>Nugetパッケージマネージャー
>ソリューションのNugetパッケージの管理
で「tesseract3.0.2」をインストールする
(注:最新版でなく「3.0.2」を指定する)
まずv3.3.0を選択して赤丸のところでバージョンを指定する。
コード
using System; using System.Windows.Forms; using System.Drawing; using System.Drawing.Imaging; namespace OCR { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (Clipboard.ContainsImage()) { string langPath = "tessdata"; //言語 string lngStr = "eng"; //画像ファイルを取得 var img = (Bitmap)Clipboard.GetImage(); //フォーマットの変換 var bitmap24 = new Bitmap(img.Width, img.Height, PixelFormat.Format24bppRgb); using (var gr = Graphics.FromImage(bitmap24)) { gr.DrawImage(img, new Rectangle(0, 0, bitmap24.Width, bitmap24.Height)); } using (var tesseract = new Tesseract.TesseractEngine(langPath, lngStr)) { // 文字を指定 tesseract.SetVariable("tessedit_char_whitelist", "1234567890.,"); // OCRの実行 Tesseract.Page page = tesseract.Process(bitmap24); //表示 MessageBox.Show(page.GetText()); } } } } }
工夫した点
- Windowsに付属する「Snipping Tool」で画面の一部をキャプチャ
- それをClipboardにコピー
- Clipboardから画像を取得できるようにした
苦労した点
「Format32bppRgb」から「Format24bppRgb」にフォーマットを変換するのに苦労した
変更履歴1
2020年8月28日リンク切れを修正、画像の追加
2021年3月28日追記
Visual Studio Community 2019で tesseract4.1.1 を使用してみました。
「PixConverter.ToPix」を使うことによって「Format32bppRgb」から「Format24bppRgb」へのフォーマット変換が不要になっています。
touch-sp.hatenablog.com