Zum Hauptinhalt springen

! Texterkennung im Bild (:ocr_text)

Deklaration

erkennungsergebnis, ergebnisdetails = bild:ocr_text([ Engineoptionen, Binärisierungsoptionen ])

Parameter

  • Engineoptionen
    Optional, Tabelle; zur Auswahl der Erkennungssprache und der Erkennungs-Engine

    Parameterstruktur
    {
    -- Wenn engine auf "apple" gesetzt ist, wird das in iOS 13 und höher integrierte Vision.framework verwendet.
    -- Mit image.vision_supported_recognition_languages() kann die Liste der von Vision.framework unterstützten OCR-Modelle abgerufen werden.
    -- Wenn engine auf "paddle" gesetzt ist, wird die Paddle-Lite-Engine verwendet. Mit lang kann das Modell angegeben werden.
    -- Bei lang = "ppocr_ch" wird beispielsweise das Modell /var/mobile/Media/1ferver/models/ppocr_ch verwendet.
    -- Die Paddle-Lite-Engine unterstützt Slim-Modelle im Format *.nb.
    engine = "apple" | "paddle" | "tesseract",
    lang = "zh-Hans",
    }
    Von Vision.framework unterstützte OCR-Modelle der einzelnen iOS-Versionen
    { -- 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",
    }
  • Binärisierungsoptionen
    Reelle Zahl, Binärisierungsschwelle; siehe Automatische Binärisierung eines Bildes.
    Tabelle, benutzerdefinierte Binärisierungsfarbtoleranz; siehe Manuelle Bildbinärisierung.
    Text, benutzerdefinierte Binärisierungsfarbtoleranz; siehe Manuelle Bildbinärisierung.

Rückgabewerte

  • Erkennungsergebnis
    Text; erkannter Text

  • Ergebnisdetails
    Tabelle

    Struktur der OCR-Ergebnisdetails
    {
    {
    ["y"] = number_value,
    ["x"] = number_value,
    ["w"] = number_value,
    ["h"] = number_value,
    ["confidence"] = number_value(0.0000 ~ 1.0000),
    ["text"] = string_value,
    },
    ...
    }

Beschreibung

Erkennt Text in einem Bild. Abgesehen davon, dass keine Bereichsparameter benötigt werden, entspricht die Funktion der Texterkennung in einem Bildschirmbereich (screen.ocr_text).
Verfügbar ab Softwareversion 1.3.8
PaddleLite-Modell für vereinfachtes Chinesisch, Standardversion (muss entpackt werden)
PaddleLite-Modell für vereinfachtes Chinesisch, Vollversion (muss entpackt werden)
PaddleLite-Erkennungsmodell für traditionelles Chinesisch (muss entpackt werden)
PaddleLite-Erkennungsmodell für Japanisch (muss entpackt werden)
PaddleLite-Erkennungsmodell für Koreanisch (muss entpackt werden)
PaddleLite-Erkennungsmodell für englische Buchstaben und Ziffern (muss entpackt werden)
Alternativ kann das passende Modell aus der PaddleOCR-Modellliste heruntergeladen und in det_opt.nb, cls_opt.nb und rec_opt.nb konvertiert werden. Anschließend die zugehörige dict.txt suchen und zusammen damit verwenden.

Beispiel

-- Beispiel für 1.3.8 und höher
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')

txt, info = img:ocr_text("en-US") -- iOS 13 und höher können das integrierte en-US-Modell für englische Buchstaben und Ziffern verwenden
sys.toast("识别结果:"..txt:atrim())

txt, info = img:ocr_text("zh-Hans") -- iOS 14 und höher können das integrierte zh-Hans-Modell für vereinfachtes Chinesisch verwenden
sys.toast("识别结果:"..txt:atrim())

txt, info = img:ocr_text({
engine = "apple", -- Apple-Engine verwenden
lang = "zh-Hans" -- Erkennungsmodell für vereinfachtes Chinesisch verwenden
}, "9D5D39-0F1F26,D3D3D2-2C2C2D")
sys.toast("识别结果:"..txt:atrim())

txt, info = img:ocr_text({
engine = "paddle", -- PaddleLite-OCR-Engine verwenden
lang = "ppocr_ch", -- ppocr_ch-Modell verwenden
})
sys.toast("识别结果:"..txt:atrim())

Hinweis: Der obige Code verwendet die Funktionen sys.toast und string.atrim, die nicht zu diesem Kapitel gehören.

Veraltete Beispiele (nicht empfohlen)

local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
-- Beispiel 1:
local txt = img:ocr_text() -- Die Standardkonfiguration verwendet die englische Buchstaben- und Ziffernerkennung der tesseract-Engine.
sys.toast("识别结果:"..txt:atrim())
--
-- Beispiel 2:
local txt = img:ocr_text("eng", "9D5D39-0F1F26,D3D3D2-2C2C2D") -- Erkennung mit Binärisierung anhand der Farbtoleranz
sys.toast("识别结果:"..txt:atrim())
--
-- Beispiel 3:
local txt = img:ocr_text("eng", { {0x9D5D39, 0x0F1F26}, {0xD3D3D2, 0x2C2C2D} }) -- Wie oben: Erkennung mit Binärisierung anhand der Farbtoleranz
sys.toast("识别结果:"..txt:atrim())
--
-- Beispiel 4:
local txt = img:ocr_text({
lang = "chi_sim", -- Bibliothek für vereinfachtes Chinesisch der tesseract-Engine verwenden (nicht integriert)
white_list = "你我他", -- Whitelist auf "你我他" setzen
})
sys.toast("识别结果:"..txt:atrim())
--
-- Beispiel 5:
local txt = img:ocr_text({
lang = "eng",
white_list = "1234567890", -- Benutzerdefinierte Whitelist, damit nur Ziffern erkannt werden
}, "9D5D39-0F1F26,D3D3D2-2C2C2D") -- Erkennung mit Binärisierung anhand der Farbtoleranz
sys.toast("识别结果:"..txt:atrim())

Hinweis: Der obige Code verwendet die Funktionen sys.toast und string.atrim, die nicht zu diesem Kapitel gehören.