質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • C++

    4176questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • OpenCV

    1429questions

    OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

  • CMake

    88questions

    CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

  • Tesseract

    38questions

    Tesseractは、Googleが提供しているオープンソースのOCRエンジンです。機械学習があり60以上の言語に対応でき、日本語の文字認識も可能です。さらに精度を上げることもできます。

  • OCR

    15questions

Visual Studio 2017 C++ Tesseract 4.1.0 OpenCV 4.0.1 ビルド後のサンプルコードのエラーについて

受付中

回答 0

投稿

flag 質問者が1日前に「まだ回答を求めています」と言っています。

  • 評価
  • クリップ 0
  • VIEW 142

omednan118

score 0

前提・実現したいこと

Tesseract OCRをインストールして、OpenCVでサンプルコードを動かしたいです。

環境
・Windows 10 64bit
・Visual Studio 2017
・Tesseract 4.1.0
・OpenCV 4.0.1
・OpenCV_contrib 4.0.1
・CMake 3.14.0-rc3
・vcpkg

Visual StudioとOpenCVをインストールして、
OpenCVの動作確認はできています。

また、コマンドプロンプトを使い、vcpkgでTesseractをインストールし、
CMakeでOpenCV_contribを"Configure"し、
Tesseractも"Configure"した後、"Gnerate"しました。
OpenCV.slnをVS2017で開き、x64のreleaseで、
バッチビルドにより、INSTALLとALL_BUILDのビルドに成功しています。

この方法は、以下のサイトを参考にしています。
https://qiita.com/lilac0011/items/9fe6e061c3a036689a36

発生している問題・エラーメッセージ

問題はここからです。

無事ビルドが完了し、下記のサンプルコードをデバッグしたところ、
以下2つのエラーが発生してサンプルコードが動きません。

プロジェクトのプロパティは以下の通り設定しました。

■ 追加のインクルードディレクトリ
C:\opencv\vcpkg-master\installed\x64-windows\include;
C:\opencv\build\include;%(AdditionalIncludeDirectories)
■ 追加のライブラリディレクトリ
C:\opencv\build\x64\vc15\lib;%(AdditionalLibraryDirectories)
■ 追加の依存ファイル
opencv_world401d.lib;%(AdditionalDependencies)
(その他インストール直後の初期ファイル)

ググっても情報が少ないため自己解決できません。
Tesseractの導入に詳しい方、ご教授お願いします。

LNK2019   未解決の外部シンボル "public: static struct cv::Ptr<class cv::text::OCRTesseract> __cdecl cv::text::OCRTesseract::create(char const *,char const *,char const *,int,int)" (?create@OCRTesseract@text@cv@@SA?AU?$Ptr@VOCRTesseract@text@cv@@@3@PEBD00HH@Z) が関数 main で参照されました。    TesseractTest    C:\Users\Taro\source\repos\TesseractTest\TesseractTest\TesseractTest.obj
LNK1120   1件の未解決の外部参照 TesseractTest    C:\Users\Taro\source\repos\TesseractTest\x64\Debug\TesseractTest.exe    

該当のソースコード

ソースコード

#include <opencv2/opencv.hpp>
#include <opencv2/text.hpp>

using namespace cv;
using namespace cv::dnn;
using namespace std;

void main()
{
    // 画像読み込み
    auto image = cv::imread("moji.jpg");
    // グレースケール化
    cv::Mat gray;
    cv::cvtColor(image, gray, COLOR_RGB2GRAY);
    // 文字認識クラスのインスタンス生成
    auto ocr = cv::text::OCRTesseract::create("C:\\opencv\\tesseract\\tessdata", "jpn");

    std::string text;
    std::vector<cv::Rect> boxes;
    std::vector<std::string> words;
    vector<float> confidences;
    // 文字認識の実行
    ocr->run(gray, text, &boxes, &words, &confidences);

    // 結果出力
    printf("%s\n", text.c_str());
    // 文字のかたまりごとに出力
    printf(" 文字      | 位置       | 大きさ     | 信頼度\n");
    printf("-----------+------------+------------+----------\n");
    for (int i = 0; i < boxes.size(); i++)
    {
        printf("%-10s | (%3d, %3d) | (%3d, %3d) | %f\n",
            words[i].c_str(),
            boxes[i].x, boxes[i].y,
            boxes[i].width, boxes[i].height,
            confidences[i]);
    }
}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • iwanote

    2019/03/14 23:01

    全然的外れかもしれないですけどreleaseビルドしてるのになんで401d.libなんだろうかと疑問があります

    キャンセル

  • omednan118

    2019/03/14 23:17

    書き忘れましたが、追加の依存ファイルには「opencv_world401d.lib」と「opencv_world401.lib」を両方入れてあります。
    確かに、ビルドするときにReleaseしかしていなかったと思うので、Debugもビルドしてみます。

    キャンセル

  • omednan118

    2019/03/16 18:00

    Debugでビルドするとエラーが大量に発生します。
    Debugで実行しても2つのエラーは残ったままです。
    まだ解決していないので、回答募集中です。

    キャンセル

まだ回答がついていません

同じタグがついた質問を見る

  • C++

    4176questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • OpenCV

    1429questions

    OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

  • CMake

    88questions

    CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

  • Tesseract

    38questions

    Tesseractは、Googleが提供しているオープンソースのOCRエンジンです。機械学習があり60以上の言語に対応でき、日本語の文字認識も可能です。さらに精度を上げることもできます。

  • OCR

    15questions