cv - 圖片多模板特徵檢測 (:cv_detect_templates)
聲明
結果集合, 可視化影像 = 圖片:cv_detect_templates(小圖片模板集合及選項)
參數
-
小圖片模板集合及選項
可選參數,表型,表內每個順序元素都是一個圖片物件,命名稱段是選項選項字段
{
should_visualize = false | true, -- 可選字段,是否可視化輸出,默認 false
detector = 0 | 1 | 2, -- 可選字段,特徵檢測器,0: ORB, 1: SIFT, 2: SURF,默認 0: ORB
score_thresh = number_value, -- 可選字段,百分制特徵點匹配得分閾值,默認 90
}
回傳值
-
結果集合
表型,圖片上檢測到的模板特徵的資訊集合檢測結果集合結構
{
{ -- 結果 1
{ -- 結果 1 頂點 1
["y"] = number_value,
["x"] = number_value,
},
{ -- 結果 1 頂點 2
["y"] = number_value,
["x"] = number_value,
},
{ -- 結果 1 頂點 3
["y"] = number_value,
["x"] = number_value,
},
{ -- 結果 1 頂點 4
["y"] = number_value,
["x"] = number_value,
},
confidence = number_value, -- 結果 1 所有特徵點綜合置信度
angle = number_value, -- 旋轉角度
index = number_value, -- 匹配的模板在小圖片模板集合中的索引
},
{ -- 結果 2
{ -- 結果 2 頂點 1
["y"] = number_value,
["x"] = number_value,
},
{ -- 結果 2 頂點 2
["y"] = number_value,
["x"] = number_value,
},
{ -- 結果 2 頂點 3
["y"] = number_value,
["x"] = number_value,
},
{ -- 結果 2 頂點 4
["y"] = number_value,
["x"] = number_value,
},
confidence = number_value, -- 結果 2 所有特徵點綜合置信度
angle = number_value, -- 旋轉角度
index = number_value, -- 匹配的模板在小圖片模板集合中的索引
},
...
} -
可視化影像
圖片物件,當 options.should_visualize 為 true 時,這個回傳值是可視化回傳值,它是個圖片物件
說明
從圖片中檢測出小圖片模板集合中的圖片特徵,可用於形變旋轉後的特徵檢測
每個小圖片模板只會匹配到分數超過 score_thresh 的最優結果
20250625 以上版本支援
注意
參數中的 score_thresh 與回傳值中的 confidence 有區別
score_thresh 是用於篩選特徵點,confidence 是模板所有特徵點綜合置信度
範例
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 results, visimg = screen.image():cv_detect_templates({
img1, img2;
score_thresh = 90,
detector = 1, -- SIFT
should_visualize = true, -- 是否可視化輸出,為 true 則第二個返回值是一張圖片
})
nLog(results) -- 輸出檢測結果信息
dialog():add_image(visimg):show() -- 可視化查看檢測結果圖片