반응형

Ubuntu 20.04에 Tesseract-ocr을 설치한 후,  C++ 코드로 문자 인식(OCR)을 간단히  해보았습니다.

 

 

 

 

2021. 9. 5 - 최초작성




우선 Ubuntu 20.04에 다음 두 패키지를 설치합니다. 

 

$ sudo apt install tesseract-ocr libtesseract-dev



참고한 사이트 [2] 에는 여러 예제가 있는데 그중에  OpenCV를 사용하여 이미지를 로드한 후, tessract를 사용하여 문자 인식하는 다음 예제를 사용했습니다.  



진행하기 전에 Ubuntu에 OpenCV가 설치되어 있어야 합니다. 

 

Ubuntu 20.04에 OpenCV 4.4.0 설치하는 방법

https://webnautes.tistory.com/1433  



다음 코드를 test.cpp로 저장합니다. 

 

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

using namespace std;
using namespace cv;


int main(int argc, char**argv)
{
    string outText, imPath = argv[1];
    Mat im = cv::imread(imPath, 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 = string(api->GetUTF8Text());
    cout << outText;
    api->End();
}

 

 

다음처럼 코드를 컴파일 합니다. 

 

$ g++ -o test test.cpp $(pkg-config opencv4 --libs --cflags) -ltesseract




이제 테스트에 사용할 이미지가 있어야 합니다. 여기에선 다음 이미지를 사용했습니다. 

 



다음처럼 인식할 이미지 파일을 인자로하여 실행시켜보면  문자 인식 결과가 출력됩니다. 

 

$ ./test 1.png

Warning: Invalid resolution 0 dpi. Using 70 instead.

Estimating resolution as 143

I had to add all the C/C++ include paths:




참고 

 

[1] https://tesseract-ocr.github.io/tessdoc/Installation.html 

 

[2] https://tesseract-ocr.github.io/tessdoc/Examples_C++.html 

 

반응형

해본 것을 문서화하여 기록합니다.
부족함이 있지만 도움이 되었으면 합니다.


포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.


제가 쓴 책도 한번 검토해보세요 ^^

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기

댓글을 달아 주세요

">