使用 Tesseract 和 OpenCV 的文本识别 (OCR) 中的链接器错误?

Linker error in Text Recognition (OCR) using Tesseract and OpenCV?

我已经编写了使用 Tesseract 和 OpenCV.But 来识别图像中的文本的代码,而我正在执行它们的代码没有问题,但它显示了一些链接器错误。我在视觉工作室中使用 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   

感谢您的帮助。

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