【问题标题】:Linker error in Text Recognition (OCR) using Tesseract and OpenCV?使用 Tesseract 和 OpenCV 的文本识别 (OCR) 中的链接器错误?
【发布时间】:2018-09-13 10:47:25
【问题描述】:

我已经编写了代码来使用 Tesseract 和 OpenCV 识别图像中的文本。但是当我执行它们时,它们的代码没有问题,但它显示了一些链接器错误。我在视觉工作室使用 tesseract4.0。

#include "stdafx.h"
#include <string>
#include <opencv2/opencv.hpp>
#include "tesseract/baseapi.h"
#include "leptonica/allheaders.h"

using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
    string outText;
    string imPath = "Images/newspaper2.jpeg";

    // Create Tesseract object
    tesseract::TessBaseAPI *ocr = new tesseract::TessBaseAPI();

    // Initialize tesseract to use English (eng) and the LSTM OCR engine. 
    ocr->Init("tessdata", "eng", tesseract::OEM_TESSERACT_ONLY);

    // Set Page segmentation mode to PSM_AUTO (3)
    ocr->SetPageSegMode(tesseract::PSM_AUTO);

    // Open input image using OpenCV
    Mat im = imread(imPath, IMREAD_COLOR);

    // Set image data
    ocr->SetImage(im.data, im.cols, im.rows, 3, im.step);

    // Run Tesseract OCR on image
    outText = string(ocr->GetUTF8Text());

    // print recognized text
    cout << outText << endl; // Destroy used object and release memory ocr->End();

    return EXIT_SUCCESS;
}

我的错误看起来像这样。

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2001 unresolved external symbol closesocket  opencv1 C:\Users\Muskan Agarwal\Dropbox\Personal\opencv1\opencv1\tesseract40.lib(svutil.cpp.obj)    1   
Error   LNK2001 unresolved external symbol connect  opencv1 C:\Users\Muskan Agarwal\Dropbox\Personal\opencv1\opencv1\tesseract40.lib(svutil.cpp.obj)    1   
Error   LNK2001 unresolved external symbol htons    opencv1 C:\Users\Muskan Agarwal\Dropbox\Personal\opencv1\opencv1\tesseract40.lib(svutil.cpp.obj)    1   
Error   LNK2001 unresolved external symbol recv opencv1 C:\Users\Muskan Agarwal\Dropbox\Personal\opencv1\opencv1\tesseract40.lib(svutil.cpp.obj)    1   
Error   LNK2001 unresolved external symbol select   opencv1 C:\Users\Muskan Agarwal\Dropbox\Personal\opencv1\opencv1\tesseract40.lib(svutil.cpp.obj)    1   
Error   LNK2001 unresolved external symbol send opencv1 C:\Users\Muskan Agarwal\Dropbox\Personal\opencv1\opencv1\tesseract40.lib(svutil.cpp.obj)    1   
Error   LNK2001 unresolved external symbol gethostbyname    opencv1 C:\Users\Muskan Agarwal\Dropbox\Personal\opencv1\opencv1\tesseract40.lib(svutil.cpp.obj)    1   
Error   LNK2001 unresolved external symbol socket   opencv1 C:\Users\Muskan Agarwal\Dropbox\Personal\opencv1\opencv1\tesseract40.lib(svutil.cpp.obj)    1   

感谢您的帮助。

【问题讨论】:

    标签: visual-studio opencv ocr linker-errors tesseract


    【解决方案1】:

    想出了解决上述问题的方法。实际上,我试图运行 64 位代码并使用 a32 位库。所以出现了链接错误。所以现在再次为 32 位构建 tesseract 并使用它就可以了。作为参考,您可以在这里查看https://github.com/tesseract-ocr/tesseract/issues/1490

    【讨论】:

      猜你喜欢
      • 2013-08-03
      • 2017-03-28
      • 2014-06-04
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      相关资源
      最近更新 更多