preprocess_for_ocr(inpath, outpath, image_size, binary_treshhold, need_deskew) - преобработать картинку перед передачей OCR
Параметры действия:
- inpath – путь к исходному файлу.
- outpath – путь к результирующему файлу.
- image_size – размер файла.
- binary_treshhold – двоичный порог.
- need_deskew – нужно ли выравнивать.
Результат выполнения действия:
- true – успешно преобработали картинку перед передачей OCR
- false – операция не удалась
Пример использования preprocess_for_ocr (PHP):
<?php $xhe_host = "127.0.0.1:3035"; // подключим объект для управления эмулятором, если еще не подключен if (!isset($path)) $path="../../../Templates/init.php"; require($path); // начало echo "<hr><font color=blue>image->".basename (__FILE__)."</font><hr>"; // 1 echo "1. Вытащим MRZ регион из скана паспорта : "; echo $image->get_mrz_image("E:/zp1.png","E:/mrz_image.png"); // 2 echo "\n2. Преобработаем MRZ перед распознанием: "; echo $image->preprocess_for_ocr("E:/mrz_image.png","E:/mrz_image_prproceeded.png"); // 3 echo "\n3. Распознаем текст на картинке : \n"; $tesseractOCR->set_allowed_chars("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789><"); $mrz = $tesseractOCR->recognize("E:/mrz_image_prproceeded.png","mrz",5); $mrz=str_replace(" ","",$mrz); echo str_replace("<","<",$mrz) ."\n\n"; // 4 echo "\n3. Разберем MRZ : \n"; $mrzObj=$image->parse_mrz($mrz); if ($mrzObj!=false && count($mrzObj->Fields)>0) { echo "Тип: ".$mrzObj->Fields[0]->Value."\n"; echo "Страна: ".$mrzObj->Fields[1]->Value."\n"; echo "ФИО: ".$mrzObj->Fields[2]->Value."\n"; echo "Серия и номер: ".$mrzObj->Fields[3]->Value."\n"; echo "Дата рождения: ".$mrzObj->Fields[6]->Value."\n"; echo "Пол: ".$mrzObj->Fields[8]->Value."\n"; echo "Годен до : ".$mrzObj->Fields[9]->Value."\n"; echo "Дата выдачи : ".$mrzObj->Fields[12]->Value."\n"; echo "Код подразделения : ".$mrzObj->Fields[13]->Value."\n"; } else echo "не распознали"; echo $app->shell_execute("open","e:/mrz_image_prproceeded.png"); // конец echo "<hr><br>"; // Quit $app->quit(); ?>
Пример использования preprocess_for_ocr (C#):
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion class Program:XHEScript { static void Main(string[] args) { // init XHE server="127.0.0.1:3035"; InitXHE(); // начало echo("<hr><font color=blue>image.add_image</font><hr>"); // 1 echo("1. Вытащим MRZ регион из скана паспорта : "); echo(image.get_mrz_image("E:/zp1.png","E:/mrz_image.png")); // 2 echo("\n2. Преобработаем MRZ перед распознанием: "); echo(image.preprocess_for_ocr("E:/mrz_image.png","E:/mrz_image_prproceeded.png")); // 3 echo("\n3. Распознаем текст на картинке : \n"); tesseractOCR.set_allowed_chars("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789><"); var mrz = tesseractOCR.recognize("E:/mrz_image_prproceeded.png","mrz",5); mrz = mrz.Replace(" ",""); echo(mrz.Replace("<","<") +"\n\n"); // 4 echo("\n3. Разберем MRZ : \n"); var mrzObj=image.parse_mrz(mrz); if (mrzObj!=null) { echo(mrzObj.ToString()); /*echo("Тип: "+mrzObj.Fields[0].Value+"\n"); echo("Страна: "+mrzObj.Fields[1].Value+"\n"); echo("ФИО: "+mrzObj.Fields[2].Value+"\n"); echo("Серия и номер: "+mrzObj.Fields[3].Value+"\n"); echo("Дата рождения: "+mrzObj.Fields[6].Value+"\n"); echo("Пол: "+mrzObj.Fields[8].Value+"\n"); echo("Годен до : "+mrzObj.Fields[9].Value+"\n"); echo("Дата выдачи : "+mrzObj.Fields[12].Value+"\n"); echo("Код подразделения : "+mrzObj.Fields[13].Value+"\n");*/ } else echo("не распознали"); app.shell_execute("open","e:/mrz_image_prproceeded.png"); // конец echo("<hr><br>"); app.quit(); } }
Пример использования preprocess_for_ocr (Python):
# Additional paths import sys sys.path.insert(0, '../../../Templates PY/') xhe_host = "127.0.0.1:3035" from xweb_human_emulator import * # начало echo("<hr><font color=blue>image.xxxxxxxxx</font><hr>") # 1 echo("1. Вытащим MRZ регион из скана паспорта : "); echo(image.get_mrz_image("E:/zp1.png","E:/mrz_image.png")); # 2 echo("\n2. Преобработаем MRZ перед распознанием: "); echo(image.preprocess_for_ocr("E:/mrz_image.png","E:/mrz_image_prproceeded.png")); # 3 echo("\n3. Распознаем текст на картинке : \n"); tesseractOCR.set_allowed_chars("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789><"); mrz = tesseractOCR.recognize("E:/mrz_image_prproceeded.png","mrz",5); mrz = mrz.replace(" ",""); echo(mrz.replace("<","<") +"\n\n"); # 4 echo("\n3. Разберем MRZ : \n"); mrzObj=image.parse_mrz(mrz); if mrzObj!=None: echo(mrzObj) app.shell_execute("open","E:/mrz_image_prproceeded.png"); # конец echo("<hr><br>") # Quit app.quit()
Пример использования preprocess_for_ocr (JS):
// подключим объект для управления эмулятором, если еще не подключен xhe_host="127.0.0.1:3035"; echo=require("../../../Templates JS/init.js"); // начало echo("<hr><font color=blue>image.add_image</font><hr>"); // 1 echo("1. Вытащим MRZ регион из скана паспорта : "); echo(image.get_mrz_image('E:\zp1.png',"e:/mrz.png")+"\n"); // 2 echo("2. Покажем результат : "); echo(app.shell_execute("open","e:/mrz.png")); // конец echo("<hr><br>"); // Quit app.quit();