cv - So sánh ảnh (:cv_compare_image)
Khai báo
tập hợp hình dạng khác biệt, ảnh trực quan = ảnh:cv_compare_image(ảnh khác[, cấu hình so sánh ảnh])
Tham số
-
ảnh khác
Đối tượng ảnh. Ảnh dùng để so sánh -
cấu hình so sánh ảnh
Kiểu bảngCác trường tùy chọn
{
should_visualize = false | true, -- không bắt buộc, có xuất ảnh trực quan hóa hay không, mặc định false
approx_epsilon = integer_value, -- không bắt buộc, tỷ lệ phần trăm chu vi dùng để xấp xỉ đường viền, giúp đơn giản hóa đường viền phức tạp, mặc định 2
}
Giá trị trả về
-
tập hợp hình dạng khác biệt
Kiểu bảng. Danh sách các hình dạng biểu thị phần khác biệt giữa hai ảnhCấu trúc hình dạng
{
{ -- hình dạng 1
{ -- đỉnh 1
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 2
["y"] = number_value,
["x"] = number_value,
},
...
},
{ -- hình dạng 2
{ -- đỉnh 1
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 2
["y"] = number_value,
["x"] = number_value,
},
...
},
...
} -
ảnh trực quan
Đối tượng ảnh. Khioptions.should_visualizelàtrue, đây là ảnh trực quan hóa
Mô tả
So sánh hai ảnh để tìm điểm khác biệt và trả về danh sách đỉnh của các vùng khác biệt
Hai ảnh phải có cùng kích thước
Ví dụ
local cv = require("image.cv")
local img1 = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
local img2 = image.load_file(XXT_SCRIPTS_PATH..'/2.png')
-- trả về danh sách hình dạng; có thể chứa nhiều hình dạng
local shapes, visimg = img1:cv_compare_image(img2)
nLog(shapes) -- in danh sách hình dạng
dialog():add_image(visimg):show() -- trực quan hóa ảnh khác biệt