Read Text (OCR) — Đọc văn bản
Đọc các giá trị động trên màn để node sau rẽ theo, gõ lại, hay nhấp theo chúng.
Mục đích
Đọc chữ từ một hoặc nhiều hình chữ nhật — tọa độ, vàng, đồng hồ, một từ trạng thái — và ghi vào biến.
Bạn nói vùng chứa gì (kiểu What to read) và nó tự tinh chỉnh engine OCR rồi sinh biến đúng kiểu. Bạn không cấu hình engine; bạn mô tả nội dung.
Khi nào dùng
- Đọc con số cần so sánh — vàng, tải trọng, số slot.
- Trích tọa độ để node sau hành động theo.
- Đọc từ trạng thái để rẽ nhánh.
- Đọc bộ đếm
3/5hay đồng hồ04:20.
Khi nào không dùng
- Tìm nút hay biểu tượng — dùng Find Image. OCR chậm và kém tin hơn cho đồ họa.
- Phát hiện trạng thái không chữ — dùng Check Region.
- Kiểm chữ có tồn tại không — đọc nó, rồi dùng If với Is Empty.
Điều kiện
Hai thứ, thiếu là node Fatal:
- Engine OCR và ngôn ngữ phải sẵn sàng.
- Cổng tính năng
ocrEnabledcủa flow phải bật.
Node Read Text hỏng ngay không output? Kiểm features.ocrEnabled trong flow settings trước khi gỡ vùng đọc. Đây là nguyên nhân phổ biến nhất.
Cách nó chạy
Thiết lập
| Thiết lập | Kiểu | Khoảng | Mặc định | Tác dụng |
|---|---|---|---|---|
| Region | hình chữ nhật | phần trăm màn | — | Vùng cần đọc |
| What to read (Type) | lựa chọn | auto, text, number, counter, time, percentage, custom | auto | Tinh chỉnh OCR và quyết biến output |
| Read multiple regions | boolean | — | false | Đọc nhiều vùng trong một node |
| Regions | danh sách | ≤ 20 | — | Mục đa vùng, mỗi mục có biến, kiểu và làm sạch riêng |
| Outputs | danh sách | ≤ 8 mỗi vùng | — | Output tên → biến, với Default tùy chọn |
| Pattern | string | ≤ 500 ký tự | — | Kiểu Custom: regex nhóm-đặt-tên |
| Auto convert | boolean | — | — | Suy int/float/bool theo nhóm bắt |
| Character whitelist | string | ≤ 200 ký tự | — | Engine chỉ nhận diện các ký tự này |
| Post-process | danh sách | ≤ 16 bước | — | Làm sạch có thứ tự: raw, digits, whitelist, regexFilter |
| Language | string | ≤ 32 ký tự | Auto | Ngôn ngữ OCR; rỗng = mặc định cấu hình |
| Timeout | integer | 1–120000 ms | 5000 | Thử lấy chữ mới trong bao lâu |
| Poll interval | integer | 50–120000 ms | 250 | Chụp lại thường xuyên cỡ nào |
Các kiểu nội dung
Thiết lập quan trọng nhất. Chọn đúng kiểu hơn mọi tinh chỉnh tay.
| Kiểu | Sinh ra | Dùng cho |
|---|---|---|
auto | Chữ thô | Khi thật sự không biết |
text | Chuỗi | Từ trạng thái, tên |
number | Một số | Vàng, tải, mọi giá trị sẽ so sánh |
counter | <tên>_current và <tên>_max | Bộ đếm kiểu 3/5 |
time | <tên>_hours và <tên>_minutes | Đồng hồ 04:20 |
percentage | Một số | 85% |
custom | Một biến mỗi nhóm regex đặt tên | Chữ có cấu trúc như tọa độ |
Auto trả chữ thô. Chuỗi thô "1167" không phải số, nên {{gold}} > 100 âm thầm hỏng. Chọn Number làm phép so chạy.
Trích xuất regex Custom
Kiểu custom nhận regex với nhóm đặt tên và sinh một biến mỗi nhóm:
Pattern: X:(?P<x>\d+)\s+Y:(?P<y>\d+)
Màn hình: X:1167 Y:1120
Kết quả: x = 1167 y = 1120 (dạng số)
Pattern phải chứa ít nhất một nhóm đặt tên (?P<name>…). Pattern sai hoặc không nhóm làm node Fatal trước cả khi chụp — nó không âm thầm trích ra rỗng.
Đọc không phân tích được thì để trống
Number hay Counter không phân tích được ghi trống, không phải 0.
Chủ đích: số 0 bịa sẽ âm thầm chảy vào phép so và quyết sai. Giá trị trống thì hiện hình. Cấp Default theo output nếu muốn dự phòng cụ thể.
Vì vậy, khai biến gắn OCR là nullable — number?, không phải number.
Đọc đa vùng
Một node, nhiều hình chữ nhật, mỗi cái ghi biến riêng. Dùng khi cần hai ba giá trị liên quan từ một màn — đọc trong một node nghĩa là một ảnh chụp, không phải ba.
Mỗi vùng mang kiểu, làm sạch và default riêng, nên giá tiền chỉ-số nằm được cạnh nhãn chữ.