! Распознавание текста на изображении (:ocr_text)
Объявление
распознанный_текст, сведения_о_результате = изображение:ocr_text([параметры_движка, параметры_бинаризации])
Параметры
-
параметры_движка
Необязательный параметр, таблица для выбора языка и движка распознаванияСтруктура параметров
{
-- Если поле engine имеет значение "apple", используется встроенный в iOS 13 и выше Vision.framework
-- Список поддерживаемых Vision.framework моделей OCR можно получить функцией image.vision_supported_recognition_languages()
-- Если поле engine имеет значение "paddle", используется движок Paddle-Lite. Модель можно указать через lang
-- Например, lang = "ppocr_ch" использует модель /var/mobile/Media/1ferver/models/ppocr_ch
-- Движок Paddle-Lite поддерживает модели Slim в формате *.nb
engine = "apple" | "paddle" | "tesseract",
lang = "zh-Hans",
}Список моделей OCR, поддерживаемых встроенным в разные версии iOS Vision.framework
{ -- iOS 13
[1] = "en-US",
}
{ -- iOS 14~15
[1] = "en-US",
[2] = "fr-FR",
[3] = "it-IT",
[4] = "de-DE",
[5] = "es-ES",
[6] = "pt-BR",
[7] = "zh-Hans",
[8] = "zh-Hant",
}
{ -- iOS 16
[ 1] = "en-US",
[ 2] = "fr-FR",
[ 3] = "it-IT",
[ 4] = "de-DE",
[ 5] = "es-ES",
[ 6] = "pt-BR",
[ 7] = "zh-Hans",
[ 8] = "zh-Hant",
[ 9] = "yue-Hans",
[10] = "yue-Hant",
[11] = "ko-KR",
[12] = "ja-JP",
[13] = "ru-RU",
[14] = "uk-UA",
} -
параметры_бинаризации
Вещественное число, порог бинаризации; см. автоматическую бинаризацию изображения
Таблица, пользовательское цветовое смещение для бинаризации; см. ручную бинаризацию изображения
Текстовое значение, пользовательское цветовое смещение для бинаризации; см. ручную бинаризацию изображения
Возвращаемое значение
- распознанный_текст
Текст распознанного результата - сведения_о_результате
ТаблицаСтруктура сведений о результате OCR
{
{
["y"] = number_value,
["x"] = number_value,
["w"] = number_value,
["h"] = number_value,
["confidence"] = number_value(0.0000 ~ 1.0000),
["text"] = string_value,
},
...
}
Описание
Распознаёт текст на изображении. Кроме отсутствия параметра области, во всём остальном аналогичен распознаванию текста в области экрана (screen.ocr_text)
Доступно в версиях ПО 1.3.8 и выше
Модель PaddleLite для упрощённого китайского, обычная версия (требуется распаковка)
Модель PaddleLite для упрощённого китайского, полная версия (требуется распаковка)
Модель PaddleLite для традиционного китайского (требуется распаковка)
Модель PaddleLite для японского (требуется распаковка)
Модель PaddleLite для корейского (требуется распаковка)
Модель PaddleLite для английских букв и цифр (требуется распаковка)
Соответствующую модель также можно скачать из списка моделей PaddleOCR, преобразовать её вdet_opt.nb,cls_opt.nb,rec_opt.nb, а затем найти соответствующийdict.txtи использовать вместе с ним
Пример
-- Пример для версии 1.3.8 и выше
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
txt, info = img:ocr_text("en-US") -- В iOS 13 и выше встроенная модель en-US распознаёт английские буквы и цифры
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text("zh-Hans") -- В iOS 14 и выше встроенная модель zh-Hans распознаёт упрощённый китайский
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text({
engine = "apple", -- Использовать движок Apple
lang = "zh-Hans" -- Использовать модель распознавания упрощённого китайского
}, "9D5D39-0F1F26,D3D3D2-2C2C2D")
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text({
engine = "paddle", -- Использовать OCR-движок PaddleLite
lang = "ppocr_ch", -- Использовать модель ppocr_ch
})
sys.toast("识别结果:"..txt:atrim())
Примечание: в приведённом выше коде используются функции не из этой главы — sys.toast, string.atrim
Устаревшие примеры (не рекомендуется)
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
-- Пример 1:
local txt = img:ocr_text() -- По умолчанию движок tesseract распознаёт текст в режиме английских букв и цифр
sys.toast("识别结果:"..txt:atrim())
--
-- Пример 2:
local txt = img:ocr_text("eng", "9D5D39-0F1F26,D3D3D2-2C2C2D") -- Распознавание с бинаризацией по цветовому смещению
sys.toast("识别结果:"..txt:atrim())
--
-- Пример 3:
local txt = img:ocr_text("eng", { {0x9D5D39, 0x0F1F26}, {0xD3D3D2, 0x2C2C2D} }) -- Распознавание с бинаризацией по цветовому смещению, как выше
sys.toast("识别结果:"..txt:atrim())
--
-- Пример 4:
local txt = img:ocr_text({
lang = "chi_sim", -- Распознавать упрощённый китайский библиотекой tesseract (обратите внимание: библиотека упрощённого китайского не встроена)
white_list = "你我他", -- Задать для белого списка значения "你我他"
})
sys.toast("识别结果:"..txt:atrim())
--
-- Пример 5:
local txt = img:ocr_text({
lang = "eng",
white_list = "1234567890", -- Ограничить белым списком распознавание только цифрами
}, "9D5D39-0F1F26,D3D3D2-2C2C2D") -- Распознавание с бинаризацией по цветовому смещению
sys.toast("识别结果:"..txt:atrim())
Примечание: в приведённом выше коде используются функции не из этой главы — sys.toast, string.atrim