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

cv - So sánh ảnh (:cv_compare_image)

Khai báo

shapes, visualized = img:cv_compare_image(other_img[, options])

Tham số

  • other_img
    Đối tượng ảnh. Ảnh dùng để so sánh

  • options
    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ề

  • shapes
    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,
    },
    ...
    },
    ...
    }
  • visualized
    Đối tượng ảnh. Khi options.should_visualizetrue, đâ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