cv - Phát hiện đặc trưng của nhiều mẫu (:cv_detect_templates)
Khai báo
results, visualized = img:cv_detect_templates(templates_with_options)
Tham số
-
templates_with_options
Kiểu bảng, không bắt buộc. Mỗi phần tử tuần tự là một đối tượng ảnh; các trường có tên là tùy chọnCá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
detector = 0 | 1 | 2, -- không bắt buộc, bộ phát hiện đặc trưng, 0: ORB, 1: SIFT, 2: SURF, mặc định 0: ORB
score_thresh = number_value, -- không bắt buộc, ngưỡng điểm phần trăm để khớp đặc trưng, mặc định 90
}
Giá trị trả về
-
results
Kiểu bảng. Tập hợp đặc trưng mẫu được phát hiện trên ảnhCấu trúc kết quả
{
{ -- kết quả 1
{ -- đỉnh 1
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 2
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 3
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 4
["y"] = number_value,
["x"] = number_value,
},
confidence = number_value, -- độ tin cậy tổng hợp của tất cả điểm đặc trưng
angle = number_value, -- góc xoay
index = number_value, -- chỉ mục của mẫu khớp trong tập hợp đầu vào
},
{ -- kết quả 2
{ -- đỉnh 1
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 2
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 3
["y"] = number_value,
["x"] = number_value,
},
{ -- đỉnh 4
["y"] = number_value,
["x"] = number_value,
},
confidence = number_value,
angle = number_value,
index = number_value,
},
...
} -
visualized
Đối tượng ảnh. Khioptions.should_visualizelàtrue, đây là ảnh trực quan hóa
Mô tả
Phát hiện đặc trưng trên ảnh từ một tập hợp mẫu ảnh nhỏ; hỗ trợ cả mẫu đã biến đổi hoặc xoay
Mỗi mẫu chỉ trả về kết quả tốt nhất có điểm vượt quá score_thresh
Được hỗ trợ từ phiên bản >= 20250625
Lưu ý
score_thresh (đầu vào) khác với confidence (đầu ra)
score_thresh lọc các điểm đặc trưng; confidence là độ tin cậy tổng hợp của mẫu
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')
local results, visimg = screen.image():cv_detect_templates({
img1, img2;
score_thresh = 90,
detector = 1, -- SIFT
should_visualize = true, -- khi là true, giá trị trả về thứ hai là một ảnh
})
nLog(results)
dialog():add_image(visimg):show()