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

Tìm màu - Chế độ tương đồng màu (screen.find_color)

Khai báo

x, y = screen.find_color({
[find_all = boolean,]
[max_results = integer_value,]
[max_miss = integer_value,]
[csim_algorithm = integer_value,]
{x0, y0, color0[, sim0]},
{dx*, dy*, color*[, sim*]},
{dx*, dy*, color*[, sim*]},
...
}[, global_similarity, left, top, right, bottom ])

Tham số

  • find_all
    Boolean, tùy chọn. Khi đúng, trả về một bảng chứa tất cả các vị trí khớp trong khu vực, định dạng {{x1, y1}, {x2, y2}, ...}. Mặc định là sai.

  • max_results
    Integer, tùy chọn. Số lượng kết quả tối đa khi find_all đúng. Tối đa 1000, mặc định 100.

  • max_miss
    Integer, tùy chọn. Số lượng điểm không khớp tối đa cho phép. Mặc định 0 (tất cả các điểm phải khớp).

  • csim_algorithm (phiên bản 20250302)
    Integer, tùy chọn. Thuật toán tương tự màu, mặc định 0.

    Thuật toán
    0 = XXT mặc định (gradient dốc, độ tương đồng giảm nhanh khi độ chênh lệch tăng)
    1 = Manhattan (mượt mà)
    2 = Euclidean (mượt mà)
  • x0, y0
    Integer. Tọa độ điểm bắt đầu. Đây là điểm tham chiếu để tính toán vị trí lệch, không phải giới hạn tìm kiếm. Nếu không chắc, sử dụng 0, 0.

  • color0
    Integer. Màu cần khớp tại điểm bắt đầu.

  • sim0
    Integer, tùy chọn. Độ tương tự tại điểm bắt đầu. Phạm vi 1~100, mặc định 100.

  • dx*, dy*
    Integer. Tọa độ lệch so với điểm bắt đầu.

  • color*
    Integer. Màu mong đợi tại điểm lệch.

  • sim*
    Integer, tùy chọn. Độ tương tự tại điểm lệch. Phạm vi -100~100, mặc định 100. Giá trị âm có nghĩa là độ tương tự khớp nhỏ hơn giá trị tuyệt đối của nó (đối xứng khớp).

  • global_similarity
    Integer, tùy chọn. Sử dụng cho tất cả các điểm nếu không cung cấp độ tương tự cho từng điểm. Phạm vi 1~100, mặc định 100.

  • left, top, right, bottom
    Integer, tùy chọn. Khu vực tìm kiếm. Mặc định là toàn màn hình.

Giá trị trả về

  • x, y
    Integer. Tọa độ của cấu trúc nhiều điểm khớp đầu tiên. Trả về -1, -1 khi thất bại.

Mô tả

Tìm vị trí của cấu trúc nhiều điểm màu khớp hoàn toàn đầu tiên bằng chế độ tương 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.

Ví dụ

x, y = screen.find_color({
{ 0, 0, 0xec1c23},
{ 12, -3, 0xffffff, 85},
{ 5, -18, 0x00adee},
{ -1, -10, 0xffc823},
{ 2, -34, 0xa78217},
{ 12, -55, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
-- Dạng tương đương với tọa độ tuyệt đối:
--
x, y = screen.find_color({
{ 509, 488, 0xec1c23},
{ 521, 485, 0xffffff, 85},
{ 514, 470, 0x00adee},
{ 508, 478, 0xffc823},
{ 511, 454, 0xa78217},
{ 521, 433, 0xd0d2d2},
}, 90, 0, 0, 100, 100)
--
-- Dạng gọn một dòng:
--
x, y = screen.find_color({ {0,0,0xec1c23},{12,-3,0xffffff,85},{5,-18,0x00adee},{-1,-10,0xffc823},{2,-34,0xa78217},{12,-55,0xd0d2d2},},90,0,0,100,100)
--
-- Demo đối xứng khớp (chạy trên màn hình trang chủ iPhone 5C để xem kết quả):
x, y = screen.find_color({
{ 516, 288, 0xffffff },
{ 519, 286, 0xffffff },
{ 521, 289, 0xffffff },
{ 516, 296, 0xffffff },
{ 522, 297, 0xffffff },
{ 520, 295, 0xffffff, -10 }, -- độ tương tự khớp nhỏ hơn 10
{ 515, 291, 0xffffff, -10 },
{ 518, 284, 0xffffff, -10 },
{ 523, 298, 0xffffff, -10 },
{ 514, 298, 0xffffff, -10 },
{ 514, 296, 0xffffff, -10 },
}, 90)
--
-- Demo tìm toàn bộ (trả về tất cả các vị trí):
results = screen.find_color({
{ 527, 278, 0xde1d26 },
{ 524, 285, 0x007aff },
{ 555, 292, 0xe4ddc9 },
{ 536, 314, 0xffde02 },
{ 502, 291, 0xffde02 },
{ 502, 283, 0xe4ddc9 },
find_all = true,
}, 90)