Recognize-Text

Функция применяется для распознавания текста на изображении.
Изображение может быть получено с файла, экрана или окна приложения.
Для работы функции требуется обучить базу символов, для этого используется psClick — ImageReader.exe. В меню PowerShell ISE пункт Дополнительные компоненты, Запустить psClick. В открывшейся программе нажать кнопку ImageReader.
Также запустить psClick можно выполнив команду: Start-Psclick
Параметры

  • -Image Изображение, загруженное в память / путь к изображению на диске

  • -Base База символов, загруженная с помощью Get-SymbolsBase

  • -Accuracy Минимальная точность символов (0-100). Символы ниже указанной точности будут удалены из возвращаемого объекта

  • -WithoutSpaces Не добавлять пробелы и переносы строк

  • -OffSet К координатам символом прибавить указанное смещение

  • -WithoutNoise При вертикальном разделении символов исключать символы, которые не пересекают центр строки

  • -WithImage Возвращать изображение. Изображение, после применения всех фильтров.
    Возвращаемое значение

    • PSCustomObject.

      PropertyDescription
      SymbolsСписок хеш таблиц с информацией о каждом распознанном символе
      TextРаспознанный текст в виде строки.
      ImageOutputИзображение после применения фильтров.
    • Хеш таблица.

      PropertyDescription
      SymbolРаспознанный символ.
      PercentПроцент, с которым распознался символ, от 0 до 1, где 1 это 100%
      RectangleПозиция символа по X и Y, ширина и высота символа.
      TypeSymbolТип символа.

      0 - Обычный символ.
      1 - Объединённый по горизонтали символ. Например Ы.
      2 - Разделённый по горизонтали символ. Например ГТ.
      3 - Объединённый по вертикали символ. Например Й.
      4 - Разделённый по контуру символ. Например, под или над символом какие-то лишние пиксели.
      5 - Пробел и символы переноса строки.

    Обзор функции распознавания текста:

    Подбор параметров для распознавания текста:

    Обучение базы символов:

    Пример использования функции распознавания:

    Примеры

    1. Распознать текст с указанного файла.

      Wake up, Neo, select all

      Clear-Host
      try{
      $BaseSymbol = Get-SymbolsBase 'l2' # загрузить базу символов
      }
      catch{
      Write-Host "База символов не загружена"
      Stop-Script
      }

      $img = Get-Image -Path 'C:\ImageL2.bmp' # получить изображение из файла

      $result = Recognize-Text -Image $img -Base $BaseSymbol # распознать текст
      $result.Text # распознанные текст

      $deskPath = [Environment]::GetFolderPath('Desktop') # путь к рабочему столу
      $result.ImageOutput.Save("$deskPath\ImageOutput.png") # сохранить изображение, которое вернула функция распознавания текста
      $img.Dispose()