Tìm màu trong ảnh (:find_color)
Khai báo
x, y = img:find_color({
[find_all = find_all,]
[max_results = max_results,]
[max_miss = max_miss,]
[find_order = find_order,]
[csim_algorithm = color_similarity_algorithm,]
{start_x, start_y, start_color[, start_similarity]},
{dx*, dy*, color*[, similarity*]},
{dx*, dy*, color*[, similarity*]},
...
} [, global_similarity, left, top, right, bottom ])
Tham số
-
find_all
Kiểu boolean, không bắt buộc. Nếu làtrue, trả về tất cả vị trí khớp trong phạm vi dưới dạng{{x1,y1},{x2,y2},...}. Mặc định làfalse -
max_results
Kiểu số nguyên, không bắt buộc. Khifind_alllàtrue, đây là số kết quả tối đa được trả về (<=1000). Mặc định là100 -
max_miss
Kiểu số nguyên, không bắt buộc. Số điểm không khớp tối đa được phép. Mặc định là0(phải khớp tất cả) -
find_order
Kiểu số nguyên, không bắt buộc. Thứ tự tìm kiếm từ1 ~ 8. Mặc định là1Giá trị thứ tự tìm kiếm
1 Trên-Dưới-Trái-Phải
2 Trái-Phải-Trên-Dưới
3 Phải-Trái-Trên-Dưới
4 Trên-Dưới-Phải-Trái
5 Dưới-Trên-Phải-Trái
6 Phải-Trái-Dưới-Trên
7 Trái-Phải-Dưới-Trên
8 Dưới-Trên-Trái-PhảiAPI màn hình
screen.find_colorkhông có trường này
Minh họa thứ tự tìm kiếm -
color_similarity_algorithm (từ phiên bản 20250302)
Kiểu số nguyên, không bắt buộc. Mặc định là0Thuật toán tính độ tương đồng màu
0 Thuật toán mặc định của XXT, độ dốc lớn
1 Khoảng cách Manhattan, độ dốc mượt
2 Khoảng cách Euclid, độ dốc mượt -
start_x, start_y
Kiểu số nguyên. Tọa độ tham chiếu ban đầu, được dùng làm mốc để tính độ lệch. Nếu không cần dùng độ lệch, hãy đặt là0, 0 -
start_color
Kiểu số nguyên. Giá trị màu cần tìm -
start_similarity
Kiểu số nguyên, không bắt buộc. Trong khoảng1 ~ 100. Mặc định là100 -
dx*, dy*
Kiểu số nguyên. Vị trí lệch so với điểm bắt đầu -
color*
Kiểu số nguyên. Màu dự kiến tại vị trí lệch -
similarity*
Kiểu số nguyên, không bắt buộc. Trong khoảng-100 ~ 100. Mặc định là100. Độ tương đồng âm nghĩa là khớp khi độ tương đồng nhỏ hơn giá trị tuyệt đối của tham số -
global_similarity
Kiểu số nguyên, không bắt buộc. Được dùng khi không chỉ định độ tương đồng cho một điểm. Trong khoảng1 ~ 100. Mặc định là100 -
left, top, right, bottom
Kiểu số nguyên, không bắt buộc. Vùng tìm kiếm. Mặc định là toàn bộ ảnh
Giá trị trả về
- x, y
Kiểu số nguyên. Tọa độ của cấu trúc khớp đầu tiên. Trả về-1, -1nếu không tìm thấy
Mô tả
Sử dụng chế độ độ tương đồng để tìm vị trí đầu tiên trong vùng khớp với cấu trúc màu nhiều điểm
Để biết cách sử dụng chế độ độ lệch, xemscreen.find_color
Ví dụ
img = screen.image()
x, y = img: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)
--
--[[
Trong vùng từ góc trên bên trái (0, 0) đến góc dưới bên phải (100, 100),
tìm điểm đầu tiên có độ tương đồng với màu 0xec1c23 lớn hơn 90,
đồng thời màu tại vị trí tương đối (12, -3) có độ tương đồng với 0xffffff lớn hơn 85,
màu tại vị trí tương đối (5, -18) có độ tương đồng với 0x00adee lớn hơn 90,
và tất cả các điểm còn lại cũng khớp theo cách tương tự.
--]]
--
-- Đoạn mã tương đương:
--
x, y = img: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)
--
--[[
Trong vùng từ góc trên bên trái (0, 0) đến góc dưới bên phải (100, 100),
tìm điểm đầu tiên có độ tương đồng với màu 0xec1c23 lớn hơn 90,
đồng thời màu tại vị trí tương đối (521-509, 485-488) có độ tương đồng với 0xffffff lớn hơn 85,
màu tại vị trí tương đối (514-509, 470-488) có độ tương đồng với 0x00adee lớn hơn 90,
và tất cả các điểm còn lại cũng khớp theo cách tương tự.
--]]