humanemulator.net — справка.
Продукт, демо и покупка — на
хуманэмулятор.рф
|
Демо
|
Купить
|
API
|
Changelog
parse_mrz
parse_mrz($mrz,$mrz_type="PNRUS"); - Распарсить строку текста MRZФункция на вход принимает параметры:
После выполнения функции возвращаемое значение будет равно одному из двух :
Пример использования
<?php // Scenario: Parse Machine-Readable Zone (MRZ) data from an image containing an ID card, passport, or other travel document. This function extracts structured information from the MRZ text. $xhe_host = getenv("RPABOT_HOST_URL"); if (!isset($path)){ // Path to the init.php file for connecting to the XHE API $path = "../../../Templates/init.php"; // Including init.php grants access to all classes and functionality for working with the XHE API require($path); } // Create output directory if it doesn't exist $outputDir = "output"; if (!is_dir($outputDir)) { mkdir($outputDir, 0777, true); echo "Created output directory: $outputDir\n"; } // Check if the source image exists $sourceImage = "passport_sample.png"; if (file_exists($sourceImage)) { // Parse MRZ from the image echo "Parsing MRZ from image: $sourceImage\n"; $result = DOM::$image->parse_mrz($sourceImage); if ($result) { echo "MRZ parsed successfully:\n"; var_export($result); // Save the parsed MRZ to a file $mrzFilePath = "$outputDir/mrz_data.txt"; file_put_contents($mrzFilePath, $result); echo "MRZ data saved to: $mrzFilePath\n"; } else { echo "Failed to parse MRZ from the image\n"; } // Example with verbose output echo "\nParsing MRZ with verbose output...\n"; $result2 = DOM::$image->parse_mrz($sourceImage, true); if ($result2) { echo "Verbose MRZ parsing result:\n"; var_export($result2); // Save the verbose MRZ to a file $mrzFilePath2 = "$outputDir/mrz_data_verbose.txt"; file_put_contents($mrzFilePath2, $result2); echo "Verbose MRZ data saved to: $mrzFilePath2\n"; } else { echo "Failed to parse MRZ with verbose output\n"; } } else { echo "Source image does not exist: $sourceImage\n"; } // Quit the application WINDOW::$app->quit(); ?>
# 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()
#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; using Newtonsoft.Json.Linq; #endregion class Program:XHEScript { static void Main(string[] args) { // init XHE server = Environment.GetEnvironmentVariable("RPABOT_HOST_URL"); 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("\n\n"); app.quit(); } }
// подключим функциональные объекты, если еще не подключен 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_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.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("\n"); // Quit app.quit();
=============================================
Image Объекты DOM System Vision Web Window
=============================================
Если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум.