반응형
윈도우 PHP 서버에서 TesseractOCR 라이브러리를 실행하려고 했는데 실패를 많이함.
리눅스는 composer로 쉽게 가능한데 윈도우는 기본적으로 composer가 설치되어 있지 않아서 설치후 가져왔는데도 계속 실패하다가 성공 방법을 알아냄
사전 조건
composer가 설치 되어 있어야함
- composer 다운로드 사이트에서 윈도우용 .exe 파일 설치하고 가져오기하면 안됨
- 아래와 같은 에러 발생
- php 로 composer를 설치 해야함
d:\> composer require thiagoalessio/tesseract-ocr-for-php
Installation failed, deleting ./composer.json.
In RequireCommand.php line 226:
No composer.json present in the current directory (./composer.json), this may be the cause of the following excepti
on.
In PackageDiscoveryTrait.php line 383:
Could not find a matching version of package thiagoalessio/tesseract-ocr-for-php. Check the package spelling, your
version constraint and that the package is available in a stability which matches your minimum-stability (stable).
반응형
TesseractOCR 윈도우에서 사용방법\
1. 실행 폴더로 이동 :
cd d:\web\www
2. Compose 설치 : https://getcomposer.org/download/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
3. TesseractOCR 설치 :
git clone https://github.com/thiagoalessio/tesseract-ocr-for-php.git
cd .\tesseract-ocr-for-php\
composer install
4. php 소스에서 경로 설정 :
require 'tesseract-ocr-for-php/vendor/autoload.php';
5. php 소스 실행 :
http://www.url/web/ocr_test/tesseract-ocr-test.php
** 환경변수, php.ini 수정: (이건 꼭 해야 되는지 모르겠음, 오류시 고려할것)
- 환경변수 등록 :
시스템 속성 > 고급 > 환경 변수로 이동-> 시스템 변수의 'Path'에 Tesseract 설치 경로(기본값: C:\Program Files\Tesseract-OCR)를 추가
- php.ini 수정 :
extension=gd
extension=mbstring
결과화면
OCR이 100%는 아니고 약간....
<style>
.img { width: 200px; min-height: 80px; }
</style>
<?php
// Composer autoloader 포함
//require 'vendor/autoload.php';
require 'tesseract-ocr-for-php/vendor/autoload.php';
//E:\work\web\ocr-test\tesseract-ocr-for-php\vendor
use thiagoalessio\TesseractOCR\TesseractOCR;
// OCR 수행 함수
/*
언어 설정:
$tesseract->lang('kor', 'eng', 'osd'); 부분에서 여러 언어를 지정합니다.
'kor'은 한국어, 'eng'는 영어, 'osd'는 숫자 및 방향 감지를 위한 스크립트입니다.
Tesseract 언어 데이터:
위 언어들을 사용하기 위해서는 해당 언어 데이터가 Tesseract에 설치되어 있어야 합니다.
Tesseract 설치 시 추가 언어 데이터를 함께 설치했는지 확인하세요.
성능 고려사항:
여러 언어를 동시에 사용하면 인식 속도가 느려질 수 있습니다.
정확도는 향상될 수 있지만, 처리 시간이 길어질 수 있습니다.
이미지 품질:
OCR의 정확도는 이미지 품질에 크게 의존합니다.
선명하고 해상도가 높은 이미지를 사용하면 더 좋은 결과를 얻을 수 있습니다.
추가 옵션:
필요에 따라 다음과 같은 추가 옵션을 사용할 수 있습니다:
phpCopy$tesseract->psm(6); // 페이지 세그멘테이션 모드 설정
$tesseract->configFile('configfile'); // 추가 설정 파일 사용
결과 후처리:
OCR 결과에 원하지 않는 문자나 공백이 포함될 수 있습니다.
필요하다면 정규 표현식 등을 사용하여 결과를 정제할 수 있습니다.
*/
function performOCR($imagePath, $language = 'eng') {
try {
// Tesseract OCR 객체 생성
$tesseract = new TesseractOCR($imagePath);
// Tesseract 실행 파일 경로 설정 (설치 경로에 따라 수정 필요)
$tesseract->executable('C:\Program Files\Tesseract-OCR\tesseract.exe');
// 언어 설정
// $tesseract->lang($language);
// 한국어(kor), 영어(eng), 숫자(osd) 인식을 위한 언어 설정
$tesseract->lang('kor', 'eng', 'osd');
// OCR 실행 및 결과 반환
return $tesseract->run();
} catch (Exception $e) {
return "OCR 처리 중 오류 발생: " . $e->getMessage();
}
}
// 이미지 파일 경로 (실제 이미지 파일 경로로 변경 필요)
//$imagePath = 'C:\path\to\your\image.png';
$imagePath = 'ocr-images/text.png';
// OCR 실행 (기본 언어: 영어)
$result = performOCR($imagePath);
echo "<div>OCR 결과 (영어):\n$result</div>\n\n";
echo "<div><img src='{$imagePath}' class='img'></div>\n\n";
$imagePath = 'ocr-images/8055.png';
// OCR 실행 (기본 언어: 영어)
$result = performOCR($imagePath);
echo "<div>OCR 결과 (숫자):\n$result</div>\n\n";
echo "<div><img src='{$imagePath}' class='img'></div>\n\n";
$imagePath = 'ocr-images/mixed-languages.png';
// OCR 실행 (기본 언어: 영어)
$result = performOCR($imagePath);
echo "<div>OCR 결과 (mix):\n$result</div>\n\n";
echo "<div><img src='{$imagePath}' class='img'></div>\n\n";
$imagePath = 'ocr-images/mix.png';
// 한국어 OCR 실행 (한국어 데이터가 설치되어 있어야 함)
$resultKorean = performOCR($imagePath, 'kor');
echo "<div>OCR 결과 (한국어):\n$resultKorean</div>\n\n";
echo "<div><img src='{$imagePath}' class='img'></div>\n\n";
$imagePath = 'ocr-images/mix2.png';
// 한국어 OCR 실행 (한국어 데이터가 설치되어 있어야 함)
$resultKorean = performOCR($imagePath, 'kor');
echo "<div>OCR 결과 (한국어):\n$resultKorean</div>\n\n";
echo "<div><img src='{$imagePath}' class='img'></div>\n\n";
$imagePath = 'ocr-images/mix3.png';
// 한국어 OCR 실행 (한국어 데이터가 설치되어 있어야 함)
$resultKorean = performOCR($imagePath, 'kor');
echo "<div>OCR 결과 (한국어):\n$resultKorean</div>\n\n";
echo "<div><img src='{$imagePath}' class='img'></div>\n\n";
$imagePath = 'ocr-images/mix4.png';
// 한국어 OCR 실행 (한국어 데이터가 설치되어 있어야 함)
$resultKorean = performOCR($imagePath, 'kor');
echo "<div>OCR 결과 (한국어):\n$resultKorean</div>\n\n";
echo "<div><img src='{$imagePath}' class='img'></div>\n\n";
$imagePath = 'ocr-images/mix5.png';
// 한국어 OCR 실행 (한국어 데이터가 설치되어 있어야 함)
$resultKorean = performOCR($imagePath, 'kor');
echo "<div>OCR 결과 (한국어):\n$resultKorean</div>\n\n";
echo "<div><img src='{$imagePath}' class='img'></div>\n\n";
?>
<br>
<br>
<br>
<div>
<pre>
TesseractOCR 윈도우에서 사용방법
0. 실행 폴더로 이동 : d:\web\www
1. Compose 설치 : https://getcomposer.org/download/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
2. TesseractOCR 설치 :
git clone https://github.com/thiagoalessio/tesseract-ocr-for-php.git
cd .\tesseract-ocr-for-php\
composer install
** 환경변수, php.ini 수정: (이건 꼭 해야 되는지 모르겠음)
- 환경변수 등록 :
시스템 속성 > 고급 > 환경 변수로 이동-> 시스템 변수의 'Path'에 Tesseract 설치 경로(기본값: C:\Program Files\Tesseract-OCR)를 추가
- php.ini 수정 :
extension=gd
extension=mbstring
3. php 소스에서 경로 설정 : require 'tesseract-ocr-for-php/vendor/autoload.php';
4. php 소스 실행 : http://www.url/web/ocr_test/tesseract-ocr-test.php
</pre>
</div>
반응형
'PHP' 카테고리의 다른 글
카페24 웹호스팅(apm)에서 외부 MSSQL 접속후 데이터 가져오기 (0) | 2025.03.24 |
---|---|
웹에디터(SmartEditor2) 에 이미지 복사 붙여넣기후 PHP 서버에 저장 및 경로변경 (2) | 2024.07.23 |
php 에서 xml 데이터를 제대로 파싱하지 못하는 경우 확인해 볼것 (2) | 2024.06.28 |
PHP 에서 CURL 사용하기 (1) | 2024.04.25 |
PHP 출력 <<< EOF 내에서 함수 사용하기 (0) | 2023.08.24 |