본문 바로가기

OCR/Tesseract

Tesseract, Leptonica 설치 정리

반응형

Tesseract, Leptonica 설치 정리

1. Leptonica 빌드하기

Leptonica는 사실 그냥 편하게 GUI CMake 툴에 폴더만 지정하고 별다른 설정 없이 돌려도 빌드는 잘 된다.

(하지만 내 프로젝트에 빌드한 lib, dll 포함시키고 막상 사용 시에 함수가 없다며 안돌아간다...!)

build 경로는 output이 나올 경로를 지정하는 거라 본인 편한대로 지정하면 된다.

 

2. Tesseract 빌드하기

Tesseract는 Leptonica 경로만 설정해 주면 정상적으로 Configure-Generate가 가능하다. (Build는 조금 더 설정 필요함)

Leptonica를 먼저 build한 후에 그 경로를 Leptonica_DIR에 적으면 된다.

나는 x64로 만들 거라 x64로 명시했지만 x32여도 상관없음.

 

Configure-Generate로 생성한 Tesseract 프로젝트를 열어서 빌드해보면 위와 같은 헤더가 없다는 오류가 뜬다.

검색기에 헤더 이름 검색해서 경로를 프로젝트에 추가해주자.

allheaders.h 추가해주고 나면 endianness.h가 없다는 에러를 띄운다. 이렇게 몇번 반복하며 필요한 헤더를 다 추가하자.

(필요한 헤더는 leptonica의 src경로와 build경로의 서브 폴더들에 다 들어있으므로, 그냥 한번에 다 추가해도 됨.)

필요한 헤더들을 프로젝트에 다 명시한 모습.

Tesseract 빌드도 정상적으로 완료되었다.

 

3. 내 프로젝트에서 Tesseract 사용하기

 

3-1. build한 tesseract와 leptonica dll 경로시스템 환경변수 PATH에 등록해주고 재부팅해서 시스템 변경사항 적용.

3-2. build한 lib 경로는 프로젝트에 추가하고,

3-3. Lib 이름을 내 프로젝트 dependencies에 등록.

 

-------------

 

Tesseract까지 build 잘 됐다고 그냥 사용하면 아마 다음과 같은 에러가 뜬다.

아무 추가 설정없이 Leptonica를 build하고 tesseract에 연결시킨 후 tesseract를 내 프로젝트에서 불러와 사용했을 경우 뜨는 오류.

Leptonica dependencies를 설치하고 Leptonica 다시 build 해서 써야함.

필수요소 zlib, libtiff  --- 선택요소 라이브러리가 얘네를 쓰므로.
선택요소

libgif, libjpeg, libpng etc.

(본인이 사용할 이미지 확장자에 맞는 거 설치하고 다시 Leptonica만 re-build 하면 됨.)

Leptonica dependencies build 하기

나는 일단 jpeg를 사용할 것이므로 zlib, libtiff, libjpeg를 build하고 leptonica에 포함시켜 줄 거다.

일단 필요한 거 받아서 압축 푼다.

zlib build

압축해제한 zlib 폴더를 보면 CMakeLists.txt가 있다. 이 파일이 있으면 그냥 GUI CMake 툴을 이용해 기존 방식대로 Configure-Generate 해서 VS프로젝트 파일 얻고 Build 하면 된다.

ㅇㅋ

libjpeg build

libjpeg에는 CMakeLists.txt 파일이 없고, 웬 .c 파일만 가득하다. 그리고 makefile.vc 파일이 보인다.

이런 경우에는 VS개발자 프롬프트 열어서 NMake 명령어로 프로젝트 파일 뽑아내면 된다.

 

VS 개발자 명령어 프롬프트를 열고

 

cd명령어로 makefile.vc 파일이 있는 곳으로 이동 후,

nmake /f makefile.vc setup-v15 명령어 실행. (setup-v15는 vs버전별로 달라질 수 있다. 예를 들어 setup-v10, setup-v11 등.)

win32.mak 파일이 없다고 하면 set 명령어로 Include 경로를 추가하거나, 경로에서 win32.mak 파일 복사해서 가져와도 된다.

 

프로젝트 파일이 생성된 것을 볼 수 있다. 열어서 build 하면 됨.

 

혹시 이런 v141 cannot found. 와 같은 에러가 뜬다면 프로젝트의 platform toolset 설정 문제이므로 프로젝트 속성을 열어서 수정.

 

본인한테 있는 버전으로 바꾸자.

 

빌드 잘됨.

libtiff build

libtiff도 CMakeLists.txt 파일이 있으므로 그냥 GUI CMake 툴 쓰면 된다.

 

설치한 JPEG와 ZLIB 경로를 설정하고, Configure-Generate ㄱㄱ

build를 바로 하면 아마 실패할텐데 역시나 헤더 문제이므로 헤더 경로 추가하고 하면 빌드 잘된다. 생략.


Leptonica에 적용

나한테 필요한 Leptonica dependencies 설정은 다 됐으므로, 이를 Leptonica에 반영시켜 줘야지.

방금 build가 다 끝난 3가지 의존 파일들 include 경로와 build된 .lib 파일 경로 적어주고 Configure-Generate-Build 한다.

 

오류가 뜬다면 build한 Leptonica Dependencies에 있는 헤더파일 경로 문제이거나, build된 .dll을 찾을 수 없다는 오류가 대부분.

헤더는 경로 추가하면 되고, dll 오류는 dll 경로를 환경변수 PATH에 등록하고 재부팅 하거나 dll 복사해서 경로에 붙여넣으면 된다.

 

오류 잡는 거 까지 다 넣으려면 너무 길어지므로 생략.

 

내 프로젝트에서 Tesseract 사용하면 됨. 예압

 

반응형

'OCR > Tesseract' 카테고리의 다른 글

Tesseract, Leptonica 컴파일 및 cmake로 opencv 포함시키기  (0) 2019.07.19