Перейти к основному содержимому

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, -- Необязательное поле: порог оценки сопоставления признаков по шкале 100, по умолчанию 90
    }

Возвращаемое значение

  • результаты
    Таблица, сведения о признаках шаблонов, обнаруженных на изображении

    Структура набора результатов
    {
    { -- Результат 1
    { -- Вершина 1 результата 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- Вершина 2 результата 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- Вершина 3 результата 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- Вершина 4 результата 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    confidence = number_value, -- Совокупная уверенность всех признаков результата 1
    angle = number_value, -- Угол поворота
    index = number_value, -- Индекс совпавшего шаблона в наборе небольших шаблонов
    },
    { -- Результат 2
    { -- Вершина 1 результата 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- Вершина 2 результата 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- Вершина 3 результата 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- Вершина 4 результата 2
    ["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() -- Визуально просмотреть изображение результатов обнаружения