Tesseract OCR 在線程中使用時崩潰 (Tesseract OCR crash when used in thread)


問題描述

Tesseract OCR 在線程中使用時崩潰 (Tesseract OCR crash when used in thread)

我用 tesseract ocr 遇到了一個奇怪的問題。一切正常,就像 ocr 部分一樣。字符被正確識別。但它在完成所有計算後崩潰,這只發生在我在線程中運行代碼時。

void server(boost::asio::io_service & io_service, unsigned short port)
    {

        tcp::acceptor a(io_service, tcp::endpoint(tcp::v4(), port));
        for (;;)
        {

            a.accept(sock);

            //boost::thread t(session, boost::ref(sock));
            //t.detach();
            std::thread(session, std::move(sock)).detach();
        }
    }

void session(tcp::socket & sock)
{
        tesseract::TessBaseAPI api;
        if (api.Init("", "eng"))
        {
            fprintf(stderr, "Could not initialize tesseract.\n");
            exit(1);
        }
        for (int i = 0; i < 81; i++)
        {
            if (!sudokuDatainside[i].empty())
            {
                api.SetImage((uchar*)sudokuDatainside[i].data, sudokuDatainside[i].size().width, sudokuDatainside[i].size().height, sudokuDatainside[i].channels(), sudokuDatainside[i].step1());
                // Get OCR result

                outText = api.GetUTF8Text();
                std::cout << outText << std::endl;
            }
            else
            {
                std::cout << "Nothing ‑ " << i << std::endl;
            }
        }
        api.End();
}

編輯:似乎它不是 api.End() 的問題。即使我不調用此方法,線程結束時程序也會崩潰... tesseract 是否支持線程?


參考解法

方法 1:

After some hours of trying to find a solution. I came across an error during building the debug libs. So rebuilding the tesseract debug libs solved the problem. Here are the instructions i used: https://github.com/charlesw/tesseract‑vs2012

(by Nils J.Nils J.)

參考文件

  1. Tesseract OCR crash when used in thread (CC BY‑SA 2.5/3.0/4.0)

#tesseract #ocr






相關問題

Android Studio 如何修復無法創建類文件錯誤? (Android Studio How to fix cannot create class-file error?)

Python - 程序收到信號 SIGSEGV,分段錯誤 (Python - Program received signal SIGSEGV, Segmentation fault)

Tesseract OCR 在線程中使用時崩潰 (Tesseract OCR crash when used in thread)

如何將 Leptonica Pix 對象轉換為 Android 的位圖 (How to convert Leptonica Pix Object to Android's Bitmap)

錯誤 2 在 pytesseract 中沒有這樣的文件或目錄 (Error 2 No such file or directory in pytesseract)

OCR:沒有得到想要的結果 (OCR : Not getting desired result)

在 x64 位機器上的 Visual Studio 2013 中鏈接 tesseract 和 opencv (Linking tesseract and opencv in Visual Studio 2013 on x64 bit machine)

如何提高讀取正方體的準確性? (How to improve read tesseract accuracy?)

如何將 C++ tesseract-ocr 代碼轉換為 Python? (how to convert C++ tesseract-ocr code to Python?)

Tesseract Worker.Load 掛在 Vercel 上 (Tesseract Worker.Load hangs on Vercel)

如何在窗口上使用 MinGW 編譯 tesseract baseapi.h? (How to compile tesseract baseapi.h with MinGW on window?)

Pytesseract 或 Keras OCR 從圖像中提取文本 (Pytesseract or Keras OCR to extract text from image)







留言討論