这个程序演示使用OpenCV读取图片,传递给Tesseract OCR识别图片上的文本。
输入图片:
程序运行后会在CMD里打印识别结果:

和之前的程序相比,输出多了:图片的分辨率估计为304
代码:
cpp
#include <leptonica/allheaders.h>
#include <opencv2/opencv.hpp>
#include <string>
#include <tesseract/baseapi.h>
int main(int argc, char *argv[]) {
std::string outText, imPath = argv[1];
cv::Mat im = cv::imread(imPath, cv::IMREAD_COLOR);
tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
api->Init(NULL, "eng", tesseract::OEM_LSTM_ONLY);
api->SetPageSegMode(tesseract::PSM_AUTO);
api->SetImage(im.data, im.cols, im.rows, 3, im.step);
outText = std::string(api->GetUTF8Text());
std::cout << outText;
api->End();
delete api;
return 0;
}