cv - 画像を比較 (:cv_compare_image)
宣言
差分形状セット, 可視化画像 = 画像:cv_compare_image(別の画像[, 画像比較設定])
パラメータ
-
別の画像
画像オブジェクト。比較対象の画像 -
画像比較設定
テーブル画像比較設定のフィールド
{
should_visualize = false | true, -- 省略可能。可視化して出力するかどうか。デフォルトは false
approx_epsilon = integer_value, -- 省略可能。輪郭近似の周長に対する百分率。複雑な輪郭の簡略化に使用。デフォルトは 2
}
戻り値
-
差分形状セット
テーブル。両画像間の差分形状形状セットの構造
{
{ -- 形状 1
{ -- 形状 1 の頂点 1
["y"] = number_value,
["x"] = number_value,
},
{ -- 形状 1 の頂点 2
["y"] = number_value,
["x"] = number_value,
},
...
},
{ -- 形状 2
{ -- 形状 2 の頂点 1
["y"] = number_value,
["x"] = number_value,
},
{ -- 形状 2 の頂点 2
["y"] = number_value,
["x"] = number_value,
},
...
},
...
} -
可視化画像
画像オブジェクト。options.should_visualize が true の場合、この戻り値は可視化結果の画像オブジェクト
説明
別の画像と比較して両画像の差異を検出し、差分領域を構成する形状の頂点情報を返す
両画像のサイズは同じでなければならない
例
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')
-- 戻り値は形状のリストで、複数の形状が含まれる場合がある
local shapes, visimg = img1:cv_compare_image(img2)
nLog(shapes) -- 形状リストの頂点情報を出力
dialog():add_image(visimg):show() -- 差分形状の画像を可視化して確認