반응형
이미지에서 글자만 추출하여 text 파일로 생성하는 기능을 구현하려고 한다. 찾아보니 해당 기술을 OCR이라 하고 OCR을 open source로 만든 프로젝트를 tesseract 라고 합니다. 최종 목표는 윈도우용 프로그램을 만드는 것인데, 이것이 생각보다 쉽지가 않다. 우선, 주 전공인 C/C++ 를 이용해서 리눅스 용으로 만들 예정이고, 크로스 컴파일러를 이용해서 윈도우 프로그램으로 만들 계획이다.
tesseract ocr c언어 프로그램 기능 구현
Ubuntu 20.04 에서 QT 프로그램을 이용해서 만들 예정이다.
1. tesseract package 설치
sudo apt install libtesseract-dev tesseract-ocr libleptonica-dev tesseract-ocr-kor
2. 샘플 코드 작성
#include "mainwindow.h"
#include <QApplication>
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
char *outText;
tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
// Initialize tesseract-ocr with English, without specifying tessdata path
if (api->Init(NULL, "kor")) {
fprintf(stderr, "Could not initialize tesseract.\n");
exit(1);
}
// Open input image with leptonica library
Pix *image = pixRead("/mnt/hgfs/share_folder/1.jpg");
api->SetImage(image);
// Get OCR result
outText = api->GetUTF8Text();
qDebug("OCR output:\n%s", outText);
// Destroy used object and release memory
api->End();
delete api;
delete [] outText;
pixDestroy(&image);
return a.exec();
}
참고 링크 : https://tesseract-ocr.github.io/tessdoc/Examples_C++.html
3. Library 사용 추가.
LIBS += -ltesseract -llep
PRO 파일에 위 코드를 추가한다.
4. 결과 캡쳐
사용 이미지
OCR output:
~ ː줌막′ 사진슬
움직이게 °
」′ 한다「?
뺄 휩 낭
특수 문자가 존재하여 좀 깨지긴 한다.
다음엔 위의 코드를 이용해서 폴더 내 모든 사진파일을 text 파일로 생성하는 작업을 해보겠다.
반응형
'QT' 카테고리의 다른 글
qt mysql 연결 오류 해결 방법 - QMYSQL driver not loaded (0) | 2022.07.14 |
---|---|
ubuntu에서 windows용 QT Application build 하기 (0) | 2021.05.27 |
Ubuntu 18.04에 QT Application 개발환경 설정 (0) | 2020.03.12 |
Qt Dll 실행 오류 (0) | 2020.02.18 |
ubuntu 16.04 메뉴 및 패널 제거 (0) | 2019.09.17 |