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

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ảng

    Cá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 ảnh

    Cấ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. Khi options.should_visualize là 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