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​

tọa độ x, tọa độ y = screen.find_color({
[find_all = có tìm nhiều kết quả hay không,]
[max_results = số kết quả tối đa,]
[max_miss = số điểm không khớp tối đa cho phép,]
[csim_algorithm = thuật toán độ tương đồng màu,]
{tọa độ x của điểm bắt đầu, tọa độ y của điểm bắt đầu, màu của điểm bắt đầu[, độ tương đồng của điểm bắt đầu]},
{tọa độ x của điểm lệch*, tọa độ y của điểm lệch*, màu của điểm lệch*[, độ tương đồng của điểm lệch*]},
{tọa độ x của điểm lệch*, tọa độ y của điểm lệch*, màu của điểm lệch*[, độ tương đồng của điểm lệch*]},
...
} [, độ tương đồng toàn cục, trái, trên, phải, dưới ])

Tham số​

  • có tìm nhiều kết quả hay không
    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.

  • số kết quả tối đa
    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.

  • số điểm không khớp tối đa cho phép
    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).

  • thuật toán độ tương đồng màu 20250302
    Integer, tùy chọn. Thuật toán độ tương đồng 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à)
  • tọa độ x của điểm bắt đầu, tọa độ y của điểm bắt đầu
    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.

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

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

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

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

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

  • độ tương đồng toàn cục
    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 đồng cho từng điểm. Phạm vi 1~100, mặc định 100.

  • trái, trên, phải, dưới
    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ề​

  • tọa độ x, tọa độ 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 đồng.
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 khớp ngược (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 đồng 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)