Chuyển tới nội dung chính

! Nhận dạng văn bản OCR trong vùng (screen.ocr_text)

Khai báo

text, details = screen.ocr_text(left, top, right, bottom [, engine_options, binarization_options ])

Tham số

  • left, top, right, bottom
    Số nguyên. Vùng trên màn hình. 0, 0, 0, 0 có nghĩa là toàn màn hình.

  • engine_options
    Tùy chọn, bảng. Chọn ngôn ngữ nhận dạng và engine.

    Cấu trúc
    {
    -- Nếu engine = "apple", iOS 13+ sử dụng Vision.framework
    -- Bạn có thể sử dụng image.vision_supported_recognition_languages() để lấy các mô hình OCR có sẵn cho Vision.framework
    -- Nếu engine = "paddle", sử dụng Paddle-Lite. Bạn có thể chỉ định lang, ví dụ lang = "ppocr_ch" có nghĩa là mô hình tại /var/mobile/Media/1ferver/models/ppocr_ch
    -- Paddle-Lite hỗ trợ các mô hình Slim trong định dạng *.nb
    engine = "apple" | "paddle" | "tesseract",
    lang = "zh-Hans",
    }
    Các mô hình OCR mặc định của Vision.framework theo phiên bản 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_options
    Số, ngưỡng. Xem Binarization ảnh tự động
    Bảng, binarization màu sắc tùy chỉnh. Xem Binarization ảnh thủ công
    Chuỗi, binarization màu sắc tùy chỉnh. Xem Binarization ảnh thủ công

Trả về

  • text
    Chuỗi. Văn bản nhận diện.

  • details
    Bảng.

    Cấu trúc chi tiết kết quả OCR
    {
    {
    ["y"] = number_value,
    ["x"] = number_value,
    ["w"] = number_value,
    ["h"] = number_value,
    ["confidence"] = number_value(0.0000 ~ 1.0000),
    ["text"] = string_value,
    },
    ...
    }

Mô tả

Các tham số tọa độ và giá trị trả về tuân theo hệ tọa độ được khởi tạo qua screen.init.
Để tương thích ngược, khi không chỉ định engine, engine Tesseract cũ sẽ được sử dụng.
Các engine Apple và Paddle-Lite được hỗ trợ yêu cầu phiên bản phần mềm 1.3.8 trở lên.
Mô hình chuẩn tiếng Trung giản thể PaddleLite (yêu cầu giải nén)
Mô hình đầy đủ tiếng Trung giản thể PaddleLite (yêu cầu giải nén)
Mô hình tiếng Trung phồn thể PaddleLite (yêu cầu giải nén)
Mô hình tiếng Nhật PaddleLite (yêu cầu giải nén)
Mô hình tiếng Hàn PaddleLite (yêu cầu giải nén)
Mô hình tiếng Anh chữ số và chữ cái PaddleLite (yêu cầu giải nén)
Bạn cũng có thể tải các mô hình từ Danh sách mô hình PaddleOCR, chuyển đổi chúng thành det_opt.nb, cls_opt.nb, và rec_opt.nb, và kết hợp chúng với dict.txt phù hợp

Ví dụ

-- 1.3.8+
text, info = screen.ocr_text(187, 882, 298, 914, "en-US") -- iOS 13+ nhận diện tiếng Anh bằng mô hình en-US mặc định
sys.toast("Kết quả: "..text:atrim())

text, info = screen.ocr_text(187, 882, 298, 914, "zh-Hans") -- iOS 14+ nhận diện tiếng Trung giản thể bằng mô hình zh-Hans mặc định
sys.toast("Kết quả: "..text:atrim())

text, info = screen.ocr_text(187, 882, 298, 914, {
engine = "apple",
lang = "zh-Hans"
}, "9D5D39-0F1F26,D3D3D2-2C2C2D")
sys.toast("Kết quả: "..text:atrim())

text, info = screen.ocr_text(0, 0, 0, 0, {
engine = "paddle",
lang = "ppocr_ch",
})
sys.toast("Kết quả: "..text:atrim())

Lưu ý: Sử dụng sys.toast, string.atrim

Hỗ trợ cũ (Không khuyến nghị)

Engine Tesseract tích hợp không còn được khuyến nghị. Nó vẫn là engine OCR mặc định trong phiên bản hiện tại của XXTouch chỉ để giữ tương thích với các kịch bản cũ.
Động cơ OCR mặc định là tesseract 3.02. Phiên bản không chính xác hoặc tệp ngôn ngữ bị hỏng có thể gây sự cố cho dịch vụ kịch bản XXTouch.
XXTouch bao gồm ngôn ngữ eng cho [A-Za-z0-9].
Đối với tiếng Trung giản thể hoặc các ngôn ngữ khác, sao chép tệp ngôn ngữ vào /var/mobile/Media/1ferver/tessdata/.
Cung cấp: Tệp ngôn ngữ tiếng Trung giản thể (yêu cầu giải nén)

Ví dụ cũ (Không khuyến nghị)

-- Ví dụ 1:
local txt = screen.ocr_text(187, 882, 298, 914) -- mặc định là tesseract tiếng Anh số
sys.toast("Kết quả: "..txt:atrim())
--
-- Ví dụ 2:
local txt = screen.ocr_text(465, 241, 505, 269, "eng", "9D5D39-0F1F26,D3D3D2-2C2C2D") -- binarization màu sắc
sys.toast("Kết quả: "..txt:atrim())
--
-- Ví dụ 3:
local txt = screen.ocr_text(465, 241, 505, 269, "eng", { {0x9D5D39, 0x0F1F26}, {0xD3D3D2, 0x2C2C2D} }) -- giống như trên
sys.toast("Kết quả: "..txt:atrim())
--
-- Ví dụ 4:
local txt = screen.ocr_text(187, 882, 298, 914, {
lang = "chi_sim", -- tesseract tiếng Trung giản thể (không được bao gồm)
white_list = "你我他",
})
sys.toast("Kết quả: "..txt:atrim())
--
-- Ví dụ 5:
local txt = screen.ocr_text(187, 882, 298, 914, {
lang = "eng",
white_list = "1234567890", -- chỉ số
}, "9D5D39-0F1F26,D3D3D2-2C2C2D") -- binarization màu sắc
sys.toast("Kết quả: "..txt:atrim())