Tesseract5のvcpkg install 2022/05/29

# Tesseract5のvcpkg install 2022/05/29

### この記事について

windows C#/C++などから、Tesseract 5.1.0 を使ってみたくなっていろいろ調べた結果、
vcpkgからだと4.1.1で止まっていました。
vcpkgのプルリクを見ると、linux版のCI途中で止まっているようですが、
（この辺りは私も疎いので頑張って欲しいとしか言えません。）
今回はwindows環境なのでできていると信じて、トライしてみました。


※プルリクは22/4/24で止まっているので、そのうち正式に対応するかもしれませんが、
　それまでのつなぎとして使います。
　5.0.1は1年以上前のプルリクが反映されない感じだったので、メモにもなるかと。

### 環境
- Winodws11 Pro
- vscode (tesseract リポジトリやSHA512などを修正するためだけ。）

### 参考
[vcpkgのtesseract 5.1.0 プルリク](https://github.com/microsoft/vcpkg/pull/24114)

## 手順
#### 1.vcpkgのインストール
コマンドプロンプトから。
<pre>
cd c:\
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
</pre>

#### 2.tesseract5用にリポジトリやcmake設定の編集
<pre>
cd c:\vcpkg\ports\tesseract
code .
</pre>

この中から、portfile.cmakeを次のように編集します。
※パッチを消してしまっていいのかわかりませんが、治っていると信じてやってみます。

**Before(修正、消すもの)**
<pre>
4~8行目

    REF 4.1.1
    SHA512 017723a2268be789fe98978eed02fd294968cc8050dde376dee026f56f2b99df42db935049ae5e72c4519a920e263b40af1a6a40d9942e66608145b3131a71a2
    PATCHES
        fix-tiff-linkage.patch
        fix-timeval.patch # Remove this patch in the next update

42行目
　　vcpkg_cmake_config_fixup(CONFIG_PATH cmake)
55行目
　　vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/tesseract.pc" "-ltesseract41" "-ltesseract41d")
59～68行目　if("training-tools" IN_LIST FEATURES)内削除

</pre>
**After(変更、追加)**
<pre>
4~8行目　書き換え
    REF c2a3efe2824e1c8a0810e82a43406ba8e01527c4 #5.1.0
    SHA512 a9a6a2d49d5e4aa10b48d45e8334c70e370d4e22418ae1fed55a29f6523790c2e1ec96c54f0ba110bf0358cd111bda5291d165aa7f66c51f229c9c70876c72ee
    PATCHES
        #fix-tiff-linkage.patch
        #fix-timeval.patch # Remove this patch in the next update

37行目　vcpkg_cmake_configure　追記
　　-DSW_BUILD=OFF
42行目　書き換え
　　vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/tesseract)
55行目　書き換え
　　vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/tesseract.pc" "-ltesseract50" "-ltesseract50d")
62行目　追記
　　file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
</pre>

次にvcpkg.jsonを次のように直します。

<pre>
  "version": "4.1.1",
↓
  "version": "5.1.0",
</pre>

書き換えたらコマンドプロンプトから、
<pre>
cd ..\..\versions\
code .
</pre>

でbaseline.jsonとt-\tesseract.jsonを書き換えます。
baseline.json
<pre>
    "tesseract": {
      "baseline": "4.1.1",
      "port-version": 10
    },
↓　書き換え
    "tesseract": {
      "baseline": "5.1.0",
      "port-version": 0
    },
</pre>

tessract.json追記するだけ。
<pre>
    {
      "git-tree": "0564372cd4f15e6e3b06184eb8f6e03c1fd36b63",
      "version": "5.1.0",
      "port-version": 0
    },
</pre>

#### 3. tesseractのビルド
設定が終わったら、同じくコマンドプロンプトから。
<pre>
cd c:\vcpkg\
.\vcpkg.exe install tesseract:x64-windows
</pre>
でtesseractをビルド
終わったら、
<pre>
.\vcpkg.exe integrate install
</pre>
で。

#### 4.確認
c:\vcpkg\installed\x64-windows\
内に、tesseract周りのものができているので、tesseractのバージョンを確認
<pre>
c:\vcpkg\installed\x64-windows\tools\tesseract\tesseract.exe --version

tesseract 5.1.0
 leptonica-1.82.0 (May 29 2022, 22:27:30) [MSC v.1932 LIB Release x64]
  libgif 5.2.1 : libjpeg 6b (libjpeg-turbo 2.1.3) : libpng 1.6.37 : libtiff 4.3.0 : zlib 1.2.12 : libwebp 1.2.2 : libopenjp2 2.5.0
 Found AVX2
 Found AVX
 Found FMA
 Found SSE4.1
</pre>
お疲れ様でした。


## 参考
https://github.com/microsoft/vcpkg/pull/24114
https://tesseract-ocr.github.io/tessdoc/
https://eddiehexorz.com/opencv-tesseract-ocr-setup-for-c-in-visual-studio/