! Reconnaître le texte d’une image (:ocr_text)
Déclaration
text, details = image:ocr_text([ engine_options, binarization ])
Paramètres
-
engine_options Table facultative permettant de choisir la langue et le moteur OCR
Structure des paramètres
{
-- engine = "apple" utilise Vision.framework fourni par Apple à partir d’iOS 13
-- image.vision_supported_recognition_languages() retourne la liste des modèles OCR pris en charge par Vision.framework
-- engine = "paddle" utilise le moteur Paddle-Lite ; lang peut choisir le modèle
-- Par exemple, lang = "ppocr_ch" utilise /var/mobile/Media/1ferver/models/ppocr_ch
-- Le moteur Paddle-Lite prend en charge les modèles Slim au format *.nb
engine = "apple" | "paddle" | "tesseract",
lang = "zh-Hans",
}Modèles OCR Vision.framework intégrés selon la version d’iOS
{ -- 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",
} -
binarization Nombre réel : seuil de binarisation, consultez la binarisation automatique Table : tolérances de couleur de binarisation personnalisées, consultez la binarisation manuelle Chaîne : tolérances de couleur de binarisation personnalisées, consultez la binarisation manuelle
Valeur de retour
-
text Chaîne : texte reconnu
-
details Table
Structure détaillée du résultat OCR
{
{
["y"] = number_value,
["x"] = number_value,
["w"] = number_value,
["h"] = number_value,
["confidence"] = number_value(0.0000 ~ 1.0000),
["text"] = string_value,
},
...
}
Description
Reconnaît le texte d’une image ; hormis l’absence de paramètres de région, l’utilisation est identique à screen.ocr_text Disponible à partir de la version 1.3.8 Modèle PaddleLite chinois simplifié standard (décompression requise) Modèle PaddleLite chinois simplifié complet (décompression requise) Modèle PaddleLite chinois traditionnel (décompression requise) Modèle PaddleLite japonais (décompression requise) Modèle PaddleLite coréen (décompression requise) Modèle PaddleLite anglais alphanumérique (décompression requise) Vous pouvez aussi télécharger les modèles depuis la liste des modèles PaddleOCR, les convertir en
det_opt.nb,cls_opt.nbetrec_opt.nb, puis les associer audict.txtcorrespondant.
Exemple
-- Exemple à partir de 1.3.8
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
txt, info = img:ocr_text("en-US") -- Le modèle en-US intégré d’Apple reconnaît les caractères anglais à partir d’iOS 13
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text("zh-Hans") -- Le modèle zh-Hans intégré d’Apple reconnaît le chinois simplifié à partir d’iOS 14
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text({
engine = "apple", -- Utiliser le moteur Apple
lang = "zh-Hans" -- Utiliser le modèle chinois simplifié
}, "9D5D39-0F1F26,D3D3D2-2C2C2D")
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text({
engine = "paddle", -- Utiliser le moteur OCR PaddleLite
lang = "ppocr_ch", -- Utiliser le modèle ppocr_ch
})
sys.toast("识别结果:"..txt:atrim())
Remarque : utilise les fonctions hors de ce chapitre sys.toast et string.atrim.
Exemples hérités (déconseillés)
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
-- Exemple 1 :
local txt = img:ocr_text() -- La configuration par défaut utilise le moteur tesseract en mode anglais alphanumérique
sys.toast("识别结果:"..txt:atrim())
-- Exemple 2 :
local txt = img:ocr_text("eng", "9D5D39-0F1F26,D3D3D2-2C2C2D") -- Utiliser la binarisation par tolérance de couleur
sys.toast("识别结果:"..txt:atrim())
-- Exemple 3 :
local txt = img:ocr_text("eng", { {0x9D5D39, 0x0F1F26}, {0xD3D3D2, 0x2C2C2D} }) -- Utiliser la binarisation par tolérance de couleur, comme ci-dessus
sys.toast("识别结果:"..txt:atrim())
-- Exemple 4 :
local txt = img:ocr_text({
lang = "chi_sim", -- Utiliser la bibliothèque chinoise simplifiée du moteur tesseract (elle n’est pas intégrée)
white_list = "你我他", -- Définir la liste blanche sur "你我他"
})
sys.toast("识别结果:"..txt:atrim())
-- Exemple 5 :
local txt = img:ocr_text({
lang = "eng",
white_list = "1234567890", -- Limiter la reconnaissance aux chiffres avec une liste blanche personnalisée
}, "9D5D39-0F1F26,D3D3D2-2C2C2D") -- Utiliser la binarisation par tolérance de couleur
sys.toast("识别结果:"..txt:atrim())
Remarque : utilise les fonctions hors de ce chapitre sys.toast et string.atrim.