라벨이 Tesseract인 게시물 표시

[MFC] Windows 10 OCR 만들기 : OCR 적용하기(tesseract)

이미지
 일단 화면 구성은 아래와 같이 하였다. 왼쪽 이미지 리스트에서 파일을 선택하면 가운데 이미지가 나오고 오른쪽에 텍스트가 나오도록 그리고 아래쪽은 동작에 따른 로그를 출력할 계획이다. 우선은 프로젝트를 생성해주고 이전에 챙겨놨던 것들을 포함시켜 준다. 사실 안되는 것들때문에 이것 저것 추가하다보니 다 추가해버렸는데 이젠 모르겠다 ㅎㅎ 라이브러리들도 챙겨 넣고! 죄다 넣었다!!     Ctranslator.h #pragma once #include "tesseract/baseapi.h" #include "leptonica/allheaders.h" #include "opencv2/opencv.hpp" class CTranslator { private:     tesseract::TessBaseAPI* _Api;     tesseract::Tesseract* m_API; public:     CTranslator();     ~CTranslator();     void CreateTesseract();     bool Translate(cv::Mat Img, CString& strOut); }; 이왕 만드는거 클래스로 ㅋㅋ 근데 여기 C++ 소스는 배경화면이 안변하네 파이썬 소스는 뒤에 검게 변하더니... CTranslator::CTranslator() {     _Api = nullptr;     CreateTesseract(); } 생성자에서 초기화하는 함수 호출! void CTranslator::CreateTesseract() {     if(_Api == nullptr)         _Api = new tesseract::TessBaseAPI();          TCHAR chFilePath[256] = { 0, };     GetModuleFileName(NULL, chFilePath, 256);     CString strFolderPath(chFilePath);     CString

[MFC] Windows 10 OCR 만들기 : 1.Tesseract(5.0.0) 컴파일

이미지
우선 참조한 블로그 : 아는대로 지껄이는 블로그 친한 동생이 타 기관에서 자료를 받았는데  파일이 아닌 팩스나 엑셀 파일을 캡쳐하여 이미지로 보내주어 손으로  일일이 다 쳐서 업무를  진행하였단 말을 듣고 불쌍한 마음에 'OCR 간단하자나...' 라는 생각이 들어 시작하게 되었으나...  역시 이론과 실전은 다르다고 Tesseract 컴파일 하는데만 무지 시간을 잡아먹으며 삽질의 연속 이었다.  각설하고 컴파일한거 설명해보도록 하자  우선  vs2015 이상이 필요하며 CMake 도 필요하니 미리 준비하도록 하자 개발 환경 : VS2022(Preview Ver.), Windows 10 Tesseract를 컴파일 하려면 Leptonica 를 컴파일 해야하고  Leptonica 를 컴파일 하려면 여러 lib파일들이 필요한데  이는 https://github.com/peirick/Tesseract-OCR_for_Windows 에서 다운로드 가능하다. 다운로드가 완료 되면 tesseract 프로젝트를 실행하여 컴파일 하도록 하자. 처음 냅다 컴파일 하면 무지막지한 에러들을 볼 수 있다. 하지만 폴더 내에 있는 Release 폴더에 가보면 우리가 필요로 하는 lib파일들이 생성된 것을 볼 수 있다. (Tesseract-OCR_for_Windows-master\x64\Release) 자 이제 Leptonica를 컴파일 해보자 Leptonica 는 공식 사이트나 Git Hub에 있으니 둘 중 편한 Git Hub에서 받자 https://github.com/danbloomberg/leptonica git clone https://github.com/danbloomberg/leptonica.git 다운로드 후 Leptonica 폴더 안에 build 폴더랑 lib 폴더를 생성해준다. 그리고 CMake 를 실행한 후 소스 폴더와 빌드 폴더를 각각 Leptonica 폴더와 build 폴더로 지정한다.   그리고 위에서 만들었던 lib 파일들을 생성한 lib 폴