Zum Hauptinhalt springen

cv – Bild in Konturinformationen umwandeln (:cv_to_shapes)

Deklaration

formen, visualisiertes_bild = bild:cv_to_shapes([Konturvergleichskonfiguration])

Parameter

  • Konturvergleichskonfiguration
    Optional, Tabelle

    Felder der Konturvergleichskonfiguration
    {
    should_visualize = false | true, -- optional, visuelle Ausgabe, standardmäßig false
    closed = false | true, -- optional, geschlossene Form, standardmäßig false
    blur_size = integer_value, -- optional, Pixelgröße des Unschärfekerns, nur positive ungerade Zahlen, standardmäßig 3
    canny_threshold1 = 100, -- optional, unterer Kantenschwellenwert, standardmäßig 100
    canny_threshold2 = 200, -- optional, oberer Kantenschwellenwert, standardmäßig 200
    approx_epsilon = integer_value, -- optional, Prozentsatz des Konturumfangs zur Approximation komplexer Konturen, standardmäßig 2
    }

Rückgabewerte

  • Formensammlung
    Tabelle mit den Scheitelpunktinformationen der Formen im Bild

    Struktur der Formensammlung
    {
    { -- Form 1
    { -- Scheitelpunkt 1 von Form 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- Scheitelpunkt 2 von Form 1
    ["y"] = number_value,
    ["x"] = number_value,
    },
    ...
    },
    { -- Form 2
    { -- Scheitelpunkt 1 von Form 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    { -- Scheitelpunkt 2 von Form 2
    ["y"] = number_value,
    ["x"] = number_value,
    },
    ...
    },
    ...
    }
  • Visualisiertes Bild
    Bildobjekt; wenn options.should_visualize true ist, enthält dieser Rückgabewert das visualisierte Bildobjekt

Beschreibung

Wandelt Konturen im Bild in Scheitelpunktinformationen von Formen um.
Das zu konvertierende Bild sollte nicht zu komplex sein; am besten eignet sich eine geschlossene Form mit klarer Kontur.

Beispiel

local cv = require("image.cv")
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
-- Der Rückgabewert ist eine Formenliste und kann mehrere Formen enthalten
local shapes, visimg = img:cv_to_shapes({
blur_size = 3, -- Größe des Unschärfekerns
approx_epsilon = 2, -- Toleranz gegen Unebenheiten 0~100
closed = true, -- geschlossene Form
should_visualize = true, -- visuelle Ausgabe; bei true ist der zweite Rückgabewert ein Bild
})
nLog(shapes) -- Scheitelpunktinformationen der Formenliste ausgeben
dialog():add_image(visimg):show() -- Formenbild visualisieren