Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

使うもの(バージョン)

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ファイルをすべて指定

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away