LoginSignup
7
8

More than 3 years have passed since last update.

OpenCVのOCR(tesseract-ocr)をWindows(64bit)、C++で使う

Last updated at Posted at 2018-06-23

tesseract-ocrのビルドに苦労したので記載

  • (2021/04/05追記)
    自分向けのメモとして残しただけの記事にいくつかのWebページからリンクされておりました。ありがとうございます。
    やはりビルドに苦戦していた人が・・・こんな雑な記事で申し訳ない。
    CPPANが終了し、SoftwareNetworkなるものに変わっていたりするので以下を参考にvcpkgでインストールすると良いと思います。

再び環境を作成したので、vcpkgのみで構築してみました。

使うもの(バージョン)

CMakeインストール

Windowsでよく使われるであろうMakeツール。
CMakeのダウンロードから環境にあったものをインストール。 (今回は「Windows win64-x64 Installer」)
インストーラで聞かれるけど環境変数のPATHはお好みで

CPPANインストール

必要なライブラリをまとめてダウンロード&ビルドするツール?
情報が少なくてよくわからん。
CPPANのインデックスからcppan-master-Windows-client.zipをダウンロード&解凍すれば良い。
こちらも環境変数のPATHを・・・

tesseract-ocrビルド

ダウンロード

ビルド手順(tesseractの展開先で実行)

  • cppan.ymlの以下コメントを外し、インストールされているVisual Studioに合わせて変更。
cppan.yml(変更前)
local_settings:
    #use_shared_libs: true
    #generator: Visual Studio 14 2015 Win64
cppan.yml
local_settings:
    #use_shared_libs: true
    generator: Visual Studio 15 2017 Win64
  • 以下コマンドをコマンドプロンプトで実行(管理者)
mkdir build && cd build
cppan ..
cmake .. -G "Visual Studio 15 2017 Win64"
cppan --generate .
  • コントロールパネルの地域「管理->システムロケールの変更」から「英語(英国)」を選択して再起動(日本語だとビルドが失敗する)
  • Visual Studioでbuildフォルダに作成されたtesseract.slnを開いてビルド(Debug、Release)
  • ビルドが完了したら日本語に戻していい

インストール

  • buildフォルダにあるcmake_install.cmakeで以下のインストール設定を変更(「C:/Program Files」に権限なくて失敗する)
cmake_install.cmake
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
  set(CMAKE_INSTALL_PREFIX "C:/tesseract")
  • Visual Studioでbuildフォルダのtesseract.slnを開いてINSTALLプロジェクトのみビルド(Debug、Release)

OpenCVビルド

ダウンロード

ビルド手順

  • CMakeのGUIツールを起動
  • source codeに解凍したopencvフォルダを指定
  • build the binariesにVisual Studioのソリューション作成先フォルダを指定
  • Configureを実行
  • OPENCV_EXTRA_MODULES_PATHに解凍したopenCV_contribのmodulesフォルダを指定
  • 再度Configureを実行
  • contribモジュールが読み込まれるのでBUILD_***となっているモジュールをBUILD_text以外チェックを外す(今回はOCRのみ使用)
  • インストールしたtesseractの設定を以下のように指定する(C:/tesseractにインストールしたとする)
Lept_LIBRARY=C:/tesseract/lib/pvt.cppan.demo.danbloomberg.leptonica-1.74.4.lib
Tesseract_INCLUDE_DIR=C:/tesseract/include
Tesseract_LIBRARY=C:/tesseract/lib/tesseract305.lib
  • Configure実行後、Generateでソリューションファイルを作成

  • Visual Studioでbuildフォルダに作成されたtesseract.slnを開いてReleaseビルド(Debugでビルドする場合はtesseract305d.libを指定)

インストール

  • buildフォルダにあるcmake_install.cmakeで以下のインストール設定を変更(「C:/Program Files」に権限なくて失敗する)
cmake_install.cmake
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
  set(CMAKE_INSTALL_PREFIX "C:/opencv")
  • Visual Studioでbuildフォルダのtesseract.slnを開いてINSTALLプロジェクトのみReleaseビルド(Debugもしているならそちらも実行)

使うための設定

Visual Studioで使用するための設定(プロジェクトのプロパティ)
- 構成プロパティ > デバッグ > 環境に「PATH=C:\opencv\x64\vc15\bin;C:\tesseract\bin;%PATH%」
- 構成プロパティ > VC++ディレクトリ > インクルードディレクトリに「C:\opencv\include」
- 構成プロパティ > VC++ディレクトリ > ライブラリディレクトリに「C:\opencv\x64\vc15\lib」
- 構成プロパティ > リンカー > 入力 > 追加の依存ファイルにC:\opencv\x64\vc15\lib内にあるlibファイルをすべて指定

参考

7
8
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8