cv - Compare images (:cv_compare_image)
Declaration
shapes, visualized = img:cv_compare_image(other_img[, options])
Parameters
-
other_img
Image object. The image to compare with -
options
TableOption fields
{
should_visualize = false | true, -- optional, whether to output visualization, default false
approx_epsilon = integer_value, -- optional, contour approximation percentage of perimeter, simplifies complex contours, default 2
}
Returns
-
shapes
Table. The list of difference shapes between the two imagesShapes structure
{
{ -- shape 1
{ -- vertex 1
["y"] = number_value,
["x"] = number_value,
},
{ -- vertex 2
["y"] = number_value,
["x"] = number_value,
},
...
},
{ -- shape 2
{ -- vertex 1
["y"] = number_value,
["x"] = number_value,
},
{ -- vertex 2
["y"] = number_value,
["x"] = number_value,
},
...
},
...
} -
visualized
Image object. When options.should_visualize is true, this is the visualization image
Description
Compare two images to find differences and return vertex lists of difference regions
The two images must have the same size
Example
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')
-- returns a list of shapes; may contain multiple shapes
local shapes, visimg = img1:cv_compare_image(img2)
nLog(shapes) -- print shapes
dialog():add_image(visimg):show() -- visualize difference image