Pular para o conteúdo principal

cv - Comparar imagens (:cv_compare_image)

Declaração

formas_diferentes, imagem_visualizada = imagem:cv_compare_image(outra_imagem[, configuracao_de_comparacao])

Parâmetros

  • outra_imagem
    Objeto de imagem a ser comparado

  • configuracao_de_comparacao
    Tabela

    Campos da configuração de comparação
    {
    should_visualize = false | true, -- parâmetro opcional; produzir saída visualizada. O padrão é false
    approx_epsilon = integer_value, -- parâmetro opcional; percentual do perímetro para aproximar contornos e simplificar contornos complexos. O padrão é 2
    }

Valores retornados

  • formas_diferentes
    Tabela com as formas das diferenças entre as duas imagens

    Estrutura do conjunto de formas
    {
    { -- forma 1
    { -- vértice 1 da forma 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- vértice 2 da forma 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    ...
    },
    { -- forma 2
    { -- vértice 1 da forma 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- vértice 2 da forma 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    ...
    },
    ...
    }
  • imagem_visualizada
    Objeto de imagem; quando options.should_visualize é true, este valor retornado é uma imagem visualizada

Descrição

Compara duas imagens e retorna as informações dos vértices das formas nas áreas diferentes.
As dimensões das duas imagens devem ser iguais.

Exemplo

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')
-- o valor retornado é uma lista de formas, que pode conter várias formas
local shapes, visimg = img1:cv_compare_image(img2)
nLog(shapes) -- exibir as informações dos vértices da lista de formas
dialog():add_image(visimg):show() -- exibir visualmente as formas diferentes