はじめまして。
OpenCVを用いた文字認識プログラムを作りたく、次のサイトを参考にコンパイルしたところ、
http://whoopsidaisies.hatenablog.com/entry/2014/11/12/003100
LNK2001 外部シンボル ""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)" は未解決です。
とのエラーが発生してしまいました。
当方、OpenCVとtesseract-ocr、CMakeを使うのは初めてのため、環境構築から少々手間取ってしまっております…
それが当該エラーに結び付いているのでしょうか。
###環境構築で躓いた個所
環境構築は
http://www.buildinsider.net/small/opencv/003#cmake
を参考に行ったのですが、
3,5の工程において、
LNK1122 モジュールのコンピューターの種類'x64'は対象コンピューターの種類'x86'と競合しています
となってしまうため、Win32でビルドを行いました。それでも
MSB6006 "cmd.exe" はコード -1073741571 を伴って終了しました。 LNK1104 ファイル '..\..\lib\Debug\opencv_bioinspired310d.lib' を開くことができません。
を消すことができず。
インクルードパス E:\soft\opencv-3.1.0\build\install\include ライブラリパス E:\soft\opencv-3.1.0\build\install\lib DLLパス E:\soft\opencv-3.1.0\build\install\bin
としてVisual Studio 2017上で無理やりコンパイルを行いました。
根本の原因はOpenCVのビルドに失敗していることなのでしょうか…
であれば、その解決策をご教授いただけますと幸いです。
###該当のソースコード
#include "stdafx.h" #include <opencv2/opencv.hpp> #include <opencv2/text.hpp> void main() { // 画像読み込み auto image = cv::imread("moji.jpg"); // グレースケール化 cv::Mat gray; cv::cvtColor(image, gray, CV_RGB2GRAY); // 文字認識クラスのインスタンス生成 auto ocr = cv::text::OCRTesseract::create("E:\soft\tesseract-ocr-3.02.eng\tesseract-ocr", "eng"); std::string text; std::vector<cv::Rect> boxes; std::vector<std::string> words; // 文字認識の実行 ocr->run(gray, text, &boxes, &words); // 結果出力 printf("%s\n", text.c_str()); // 文字のかたまりごとに出力 printf(" 文字 | 位置 | 大きさ\n"); printf("-----------+------------+------------\n"); for (int i = 0; i < boxes.size(); i++) { printf("%-10s | (%3d, %3d) | (%3d, %3d)\n", words[i].c_str(), boxes[i].x, boxes[i].y, boxes[i].width, boxes[i].height); } }

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/13 08:07
2017/09/13 08:53
2017/09/15 12:54 編集
2017/09/15 13:03
2017/09/16 12:55
2017/09/17 06:02
2017/09/19 20:50