Nhị phân hóa đối tượng ảnh (:binaryzation)
Khai báo
img = img:binaryzation({
[white_background = white_background,]
[csim_mode = similarity_mode,]
[csim_algorithm = color_similarity_algorithm,]
{color*, tolerance*},
{color*, tolerance*},
...
})
img = img:binaryzation("cx*-cox*,cx*-cox*...")
Tham số
-
white_background (từ phiên bản 20250302)
Kiểu boolean, không bắt buộc. Có đặt nền thành màu trắng hay không. Mặc định làfalse(tiền cảnh màu trắng trên nền đen) -
similarity_mode (từ phiên bản 20250302)
Kiểu boolean, không bắt buộc. Có sử dụng chế độ độ tương đồng hay không. Trong chế độ này,tolerance*biểu thị độ tương đồng thay vì độ chênh lệch màu. Mặc định làfalse -
color_similarity_algorithm (từ phiên bản 20250302)
Kiểu số nguyên, không bắt buộc. Chỉ có hiệu lực trong chế độ độ tương đồng. 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, độ tương đồng giảm nhanh khi độ chênh lệch tăng
1 Khoảng cách Manhattan, độ dốc mượt
2 Khoảng cách Euclid, độ dốc mượt -
color*, tolerance*
Kiểu số nguyên. Danh sách màu cho phép.color*là giá trị màu;tolerance*là độ lệch tối đa của màu đó -
cx*-cox*
Kiểu chuỗi. Danh sách màu cho phép.cx*là chuỗi thập lục phân của giá trị màu;cox*là chuỗi thập lục phân của độ lệch tối đa dành chocx*
Giá trị trả về
- img
Đối tượng ảnh. Trả về chính đối tượng ảnh sau khi nhị phân hóa
Mô tả
Nhị phân hóa một đối tượng ảnh
Thay đổi trực tiếp đối tượng ảnh
Hiệu năng: không sao chép dữ liệu trong quá trình thao tác
Ví dụ
local pic = screen.image(462, 242, 569, 272)
pic = pic:binaryzation({
{0x9D5D39, 0x0F1F26},
{0xD3D3D2, 0x2C2C2D},
})
local pic = screen.image(462, 242, 569, 272)
pic = pic:binaryzation("9D5D39-0F1F26,D3D3D2-2C2C2D")
local pic = screen.image(462, 242, 569, 272)
pic = pic:binaryzation({
csim_mode = true, -- sử dụng chế độ độ tương đồng
csim_algorithm = 2, -- sử dụng thuật toán Euclid
white_background = true, -- đặt nền thành màu trắng
{0x9D5D39, 90}, -- độ tương đồng 90% cho màu 0x9D5D39
{0xD3D3D2, 90}, -- độ tương đồng 90% cho màu 0xD3D3D2
})