cv - 圖片轉換成形狀輪廓資訊 (:cv_to_shapes)
聲明
形狀集合, 可視化影像 = 圖片:cv_to_shapes([輪廓匹配設定])
參數
-
輪廓匹配設定
可選參數,表型輪廓匹配設定字段
{
should_visualize = false | true, -- 可選參數,是否可視化輸出,默認 false
closed = false | true, -- 可選參數,是否閉合圖形,默認 false
blur_size = integer_value, -- 可選參數,模糊內核像素,只能為正奇數,默認 3
canny_threshold1 = 100, -- 可選參數,邊緣最小閾值,默認 100
canny_threshold2 = 200, -- 可選參數,邊緣最大閾值,默認 200
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 img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
-- 返回值是一個形狀列表,可能包含多個形狀
local shapes, visimg = img:cv_to_shapes({
blur_size = 3, -- 模糊內核尺寸
approx_epsilon = 2, -- 抗毛刺率 0~100
closed = true, -- 閉合圖形
should_visualize = true, -- 是否可視化輸出,為 true 則第二個返回值是一張圖片
})
nLog(shapes) -- 輸出形狀列表頂點信息
dialog():add_image(visimg):show() -- 可視化查看形狀圖片