Recognize-Text
Функция применяется для распознавания текста на изображении.
Изображение может быть получено с файла, экрана или окна приложения.
Для работы функции требуется обучить базу символов, для этого используется psClick — ImageReader.exe. В меню PowerShell ISE пункт Дополнительные компоненты, Запустить psClick. В открывшейся программе нажать кнопку ImageReader.
Также запустить psClick можно выполнив команду: Start-Psclick
Параметры
-Image Изображение, загруженное в память / путь к изображению на диске
-Base База символов, загруженная с помощью Get-SymbolsBase
-Accuracy Минимальная точность символов (0-100). Символы ниже указанной точности будут удалены из возвращаемого объекта
-WithoutSpaces Не добавлять пробелы и переносы строк
-OffSet К координатам символов прибавить указанное смещение
-WithoutNoise При вертикальном разделении символов исключать символы, которые не пересекают центр строки
-WithImage Возвращать изображение. Изображение, после применения всех фильтров.
Возвращаемое значениеPSCustomObject.
Property Description Symbols Список хеш таблиц с информацией о каждом распознанном символе Text Распознанный текст в виде строки. Line Координаты строк по Y. ImageOutput Изображение после применения фильтров. Необходимо указать параметр WithImage Хеш таблица.
Property Description Symbol Распознанный символ. Percent Процент, с которым распознался символ, от 0 до 1, где 1 это 100% Rectangle Позиция символа по X и Y, ширина и высота символа. TypeSymbol Тип символа. 0 - Обычный символ.
1 - Объединённый по горизонтали символ. Например Ы.
2 - Разделённый по горизонтали символ. Например ГТ.
3 - Объединённый по вертикали символ. Например Й.
4 - Разделённый по контуру символ. Например, под или над символом какие-то лишние пиксели.
5 - Пробел и символы переноса строки.
6 - Разделённый по контуру и по горизонтали.
Обзор функции распознавания текста:
Подбор параметров для распознавания текста:
Обучение базы символов:
Пример использования функции распознавания:
Примеры
Распознать текст с указанного файла.
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()