[C++][windows]tesseract5.2安装后测试代码

测试环境:

vs2019

tesseract-5.2

opencv-3.4.4

代码如下:

#include <stdio.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <leptonica/allheaders.h>
#include <tesseract/baseapi.h>
#include <tesseract/publictypes.h>
#include <opencv2/imgproc.hpp>

int main()
{
    std::string image_name = "D:/text.jpg";
    cv::Mat imageMat;
    imageMat = cv::imread(image_name);
    if (imageMat.data == nullptr)
    {
        printf("No image data \n");
        return -1;
    }
    //cv::Mat blurMat;    
    //cv::medianBlur(imageMat, blurMat, 5); // 图像模糊
    cv::Mat z1, g_grayImage;
    cv::cvtColor(imageMat, z1, cv::COLOR_BGR2GRAY);            // 灰度图
    // cv::threshold(z1, z2, 214, 255, cv::THRESH_BINARY);     // 阈值    
    cv::adaptiveThreshold(z1, g_grayImage, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 7, 25);  // 自动降噪


    namedWindow("Image1", cv::WINDOW_AUTOSIZE);
    cv::imshow("Image1", g_grayImage);

    cv::waitKey(0);

    std::system("chcp 65001");
    char* outText;
    tesseract::TessBaseAPI api;
    //if (api.Init(NULL, "chi_sim"))  // for chinese
    if (api.Init("D:\\Program Files\\Tesseract-OCR\\tessdata", "eng", tesseract::OEM_DEFAULT))
    {
        std::cout << stderr << std::endl;
        exit(1);
    }
    // Pix *image = pixRead("3.jpg");
    api.SetImage((uchar*)g_grayImage.data, g_grayImage.cols, g_grayImage.rows, 1, g_grayImage.cols);

    outText = api.GetUTF8Text();
    if (outText == nullptr)
    {
        std::cout << "No Data" << std::endl;
    }
    std::cout << outText << std::endl;
    // Destroy used object and release memory
    api.End();           // delete api;
    delete[] outText;    // pixDestroy(&image);

    return 0;
}

测试代码2:

    tesseract::TessBaseAPI api;
	api.Init("", "eng", tesseract::OEM_DEFAULT);
	api.SetPageSegMode(static_cast<tesseract::PageSegMode>(7));
	api.SetOutputName("out"); 
 
	char image[256] = "myimage.png";
	PIX   *pixs = pixRead(image);
	STRING text_out;
	api.ProcessPages(image, NULL, 0, &text_out);
	cout << text_out.string();

猜你喜欢

转载自blog.csdn.net/FL1623863129/article/details/132342976