Pular para o conteúdo principal

cv - Converter uma imagem em informações de contorno de formas (:cv_to_shapes)

Declaração

conjunto_de_formas, imagem_visualizada = imagem:cv_to_shapes([configuracao_de_correspondencia_de_contorno])

Parâmetros

  • configuracao_de_correspondencia_de_contorno
    Tabela opcional

    Campos da configuração de correspondência de contorno
    {
    should_visualize = false | true, -- parâmetro opcional; produzir saída visualizada. O padrão é false
    closed = false | true, -- parâmetro opcional; fechar a forma. O padrão é false
    blur_size = integer_value, -- parâmetro opcional; pixels do núcleo de desfoque, somente números ímpares positivos. O padrão é 3
    canny_threshold1 = 100, -- parâmetro opcional; limiar mínimo de borda. O padrão é 100
    canny_threshold2 = 200, -- parâmetro opcional; limiar máximo de borda. O padrão é 200
    approx_epsilon = integer_value, -- parâmetro opcional; percentual do perímetro para aproximar contornos e simplificar contornos complexos. O padrão é 2
    }

Valores retornados

  • conjunto_de_formas
    Tabela com as informações dos vértices das formas na imagem

    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

Converte os contornos da imagem em informações dos vértices das formas.
Recomenda-se que as imagens a serem convertidas em formas não sejam muito complexas; o ideal é usar formas fechadas com contornos nítidos.

Exemplo

local cv = require("image.cv")
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
-- o valor retornado é uma lista de formas, que pode conter várias formas
local shapes, visimg = img:cv_to_shapes({
blur_size = 3, -- tamanho do núcleo de desfoque
approx_epsilon = 2, -- taxa de redução de irregularidades, de 0 a 100
closed = true, -- forma fechada
should_visualize = true, -- produzir saída visualizada; quando true, o segundo valor retornado é uma imagem
})
nLog(shapes) -- exibir as informações dos vértices da lista de formas
dialog():add_image(visimg):show() -- exibir visualmente a imagem das formas