반응형
Tesseract OCR을 이용한 글자 추출 프로그램
오픈소스인 tesseract ocr을 이용하여 png 파일에 있는 문자열을 추출하는 걸 해보겠습니다.
환경설정 - 설치
tesseract-ocr 설치
tesseract-ocr 설치방법입니다.
sudo apt install tesseract-ocr
libtesseract-dev 설치
libtesseract dev 설치방법입니다.
sudo apt install libtesseract-dev
tesseract-ocr-kor 설치
한글팩을 추가로 설치합니다.
sudo apt install tesseract-ocr-kor
예제코드
이 예제코드는 example.png 파일을 추출하여 글자를 출력하는 형태입니다.
api->Init(NULL, "kor") 부분에서 kor 대신 eng를 사용하면 영어로 추출합니다.
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
int main()
{
char *outText;
tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
// Tesseract-OCR 엔진을 초기화합니다. 여기서 "eng"는 영어, "kor"는 한글을 의미합니다. 다른 언어를 사용하려면 해당 언어 코드를 사용하세요.
if (api->Init(NULL, "kor"))
{
fprintf(stderr, "Could not initialize tesseract.\n");
exit(1);
}
// 이미지 파일로부터 텍스트를 추출합니다. 'example.png'를 실제 이미지 파일 경로로 변경하세요.
Pix *image = pixRead("example.png");
api->SetImage(image);
// 추출된 텍스트를 얻습니다.
outText = api->GetUTF8Text();
printf("OCR output:\n%s", outText);
// 메모리 해제
api->End();
delete [] outText;
pixDestroy(&image);
return 0;
}
컴파일 방법
g++ main.cpp -o main `pkg-config --cflags --libs tesseract lept`
main이라는 실행파일이 생깁니다.
./main 으로 실행하면 됩니다.
예제 example.png로 아래 이미지를 넣었습니다.
(옛날에 블로그에 썼던 이미지...하하)
결과는..!?
root@master:~/ocr# ./main
OCR output:
2023년 상반기
너티 그
고신 포가
그
20 /
제대로 나오는 글자도 있지만 대부분 이상한 값이 나왔네요.
좀 더 추출할 때 옵션이나 테스트를 해봐야겠습니다.
반응형
'다양한 TIP' 카테고리의 다른 글
curl 사용법 소개(옵션 설명) (0) | 2024.02.20 |
---|---|
git config 이름 이메일 확인 및 설정방법 (0) | 2024.02.16 |
git branch 삭제 안됨 (0) | 2024.02.14 |
댓글