Chuyển tới nội dung chính

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ọn

    Cá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 ảnh

    Cấ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. Khi options.should_visualizetrue, đâ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()