Video: Bài 7: OCR đọc text và Tìm chữ OCR
Mở trên YouTube ↗🔤 OCR đọc text (ocr)
Nhóm palette: Hình ảnh · type: ocr · cổng: 1 vào · 1 ra (luôn đi tiếp)
Mục đích
Chụp một hình chữ nhật trên client, Tesseract đọc chữ, lưu biến. Cần Tesseract-OCR cài trên máy (tesseract.exe PATH hoặc C:\Program Files\Tesseract-OCR\). Thiếu Tesseract → lỗi lúc chạy. Một cổng ra — không rẽ nhánh; chữ rỗng vẫn OK.
Tiền xử lý: crop ROI; tách dải chữ, bỏ icon/HUD; phóng dòng, đảo chữ sáng/nền tối khi cần. OCR từng dòng (PSM ẩn 7/8). UI không cho sửa psm/whitelist. Khung rộng (HUD) không OCR cả map.
Capture vs chuộtCùng hệ tọa độ client / Preview. Đợi hình / OCR / Preview dùng
WGC hoặc PrintWindow (behind_safe) — vẫn lấy được buffer cửa sổ khi app bị cửa sổ khác che (tùy app/GPU; một số game/DX có thể đen → tool focus rồi chụp lại). Vào node nhận diện không cướp focus (chỉ restore + nâng z-order). Click sau khi thấy ảnh vẫn dùng chuột hệ thống (SendInput). Cửa sổ đổi size: engine thử tỉ lệ ~0.50–2.20 rồi map tọa độ về client.Cách dùng
- Cắt vùng OCR từ view lớn (ô
ĐÃ CÓ VÙNG OCR/CHƯA CÓ VÙNG OCR). Dòng hướng dẫn nằm thanh công cụ, không đè mép trên ảnh capture. Cắt sát chữ vẫn nhanh nhất; khung hơi rộng / dính icon HUD engine vẫn đọc nhãn. - Chọn ngôn ngữ. Bấm Thử OCR ngay xem chữ trên máy thật trước khi chạy flow.
- Đọc số vàng, tên acc, mã OTP, thông báo. Không dùng OCR thay Check ảnh cho nút cố định — ảnh chắc hơn.
- Muốn “không đọc được thì dừng” → If
ocr_textempty (OCR không tự rẽ nhánh).
Từng setting
| Ô trên Properties | Key | Mặc định | Ý nghĩa / cách dùng |
|---|---|---|---|
| Delay sau (ms) | delay_after_ms | 50 | Sau khi đọc xong, luôn đi cổng ra. |
| Trạng thái vùng · X Y W H | x / y / w / h | w/h = 0 → CHƯA CÓ VÙNG OCR | Nút Cắt vùng OCR từ view lớn gán x, y, w, h. Có thể sửa tay. Engine w/h = max(1, …). |
| Ngôn ngữ | lang | vie / eng / tha | Một ngôn ngữ Tesseract mỗi node. Catalog default vie. Script cũ eng+vie → vie, eng+tha → tha. Cần traineddata tương ứng. |
| Biến lưu | variable | ocr_text | Ghi vars[variable] và luôn vars["ocr_text"]. |
| (ẩn UI) PSM | psm | 7 | UI không cho sửa. PSM ẩn 7/8 (một dòng). Nhiều dòng HUD: dùng Tìm chữ OCR. File cũ không đổi psm trên Properties. |
| (ẩn UI) Whitelist | whitelist | (rỗng) | Ẩn trên UI. File cũ có whitelist vẫn được executor dùng. |
Ví dụ thực tế
- A. Đọc vàng rồi nhánh. OCR vùng số → If
ocr_textcontainsk(nếu UI hiện12.5k) hoặc Javascript parse. - B. Gõ lại mã. OCR mã → Gõ phím
{ocr_text}(biến lưu mặc định). Nếu đổi tên biếnotpthì gõ{otp}. - C. Log Telegram. OCR tên nhân vật → Telegram
Acc: {ocr_text}. - D. Excel. OCR → Ghi Excel cột B hàng
{app_title}. - E. HUD game (Liên Minh / Thư / Kho) — Cắt vùng thanh HUD (được nới dính icon tròn). OCR đọc từng nhãn; không OCR cả map.
Lưu ý
Chất lượng chữCắt sát chữ vẫn nhanh nhất. Khung hơi rộng / dính icon HUD engine vẫn cố đọc nhãn (bỏ nút tròn, portrait).
vie cần vie.traineddata. Anh: eng. Thai: tha. Nhiều dòng / cả cửa sổ: dùng Tìm chữ OCR.Thử OCR ngayXem chữ trên máy thật trước khi chạy flow. PSM/whitelist không có trên Properties.
Xem thêm: If OCR / Biến · Tìm chữ OCR · Cắt vùng & Preview