Aller au contenu principal

cv - Convertir une image en contours de formes (:cv_to_shapes)

Déclaration​

shapes, visualized = image:cv_to_shapes([ options ])

Paramètres​

  • options
    Table facultative

    Champs d’options
    {
    should_visualize = false | true, -- facultatif, produire une visualisation, par défaut false
    closed = false | true, -- facultatif, fermer les formes, par défaut false
    blur_size = integer_value, -- facultatif, taille du noyau de flou, nombre impair positif uniquement, par défaut 3
    canny_threshold1 = 100, -- facultatif, seuil inférieur de Canny, par défaut 100
    canny_threshold2 = 200, -- facultatif, seuil supérieur de Canny, par défaut 200
    approx_epsilon = integer_value, -- facultatif, pourcentage du périmètre d’approximation du contour, simplifie les contours complexes, par défaut 2
    }

Valeur de retour​

  • shapes
    Table : informations des sommets des formes présentes dans l’image

    Structure de la collection de formes
    {
    { -- forme 1
    { -- sommet 1 de la forme 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- sommet 2 de la forme 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    ...
    },
    { -- forme 2
    { -- sommet 1 de la forme 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- sommet 2 de la forme 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    ...
    },
    ...
    }
  • visualized
    Objet image ; lorsque options.should_visualize vaut true, il s’agit de l’image de visualisation retournée

Description​

Convertit les contours présents dans l’image en informations de sommets de formes. Pour de meilleurs résultats, privilégiez des formes fermées simples et bien délimitées.

Exemple​

local cv = require("image.cv")
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
local shapes, visimg = img:cv_to_shapes({
blur_size = 3,
approx_epsilon = 2,
closed = true,
should_visualize = true,
})
nLog(shapes)
dialog():add_image(visimg):show()