Erzeugung von Umrissen eines Bilddatei als Polygon

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
mpz
Beiträge: 505
Registriert: 14.06.2005 15:53
Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
Wohnort: Berlin, Tempelhof

Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von mpz »

Hi,

ich möchte gerne die Umrisse einer Grafikdatei erkennen. Der Umriss soll dann aus einem Polygon als mehreren geschlossenen Linien bestehen. Diese Funktion möchte ich gerne für meine 2d Physik benutzen. Also z.B. Fünfeck Grafik soll geladen werden und die Ränder als Polygon erkannt werden. Damit kann man dann das z.B. das Fünfeck physikalisch einsetzen. Geht dann auch mit anderen Objekten

Hat jemand Ideen oder schon Codebeispiele zur Verfügung? Zum Einsatz kommt Chipmunk als 2d engine. Da reicht die Übergabe von Polygonpunkten,,,

Kleiner Beispielcode von Physik-Punkten...
http://www.file-upload.net/download-373 ... D.exe.html


Gruß Michael
Working on :lol: - LibSGD - MP3D Engine - 8)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von STARGÅTE »

Tia, ohne mich tiefer mit dem Thema befasst zu haben würe ich sagen, dass das Ergebnis wohl kaum zufriedenstellen sein wird.
Problem ist ist da ehr nicht die Kanten erkennung, dass geht relativ schnell. Problem ist ehr, die Karten später auf zB dein Fünfeck zu reduzieren.

Ich weiß nicht wie viele Grafiken du hast, aber wäre es nicht einfach selbst für jede Grafik ein Polygon dazu selbst erstellst, zB indem du einfach überdas Bild dein Polygon zeichnest und speicherst?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
mpz
Beiträge: 505
Registriert: 14.06.2005 15:53
Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
Wohnort: Berlin, Tempelhof

Re: Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von mpz »

Hi Stargate,

das Problem ist viel einfacher. Ich nehme ein Bild einer Kiste(Rand muss zu Erkennung schwarz sein) oder ein Stern (auch mit schwarzen Rand) und es sollen nur die Ränder als Polygon erkannt werden. Wieviel Seiten das Polygon hat ist dabei nebensächlich (z.B. bei Treppen sind es 40 Seiten). Die Polygone übergebe ich chipmunk und die Darstellkung der Grafik als Sprite übernimmt mp3d. Wenn ich die Ränder habe wird das Objekt physiklisch (lächerlich einfach) animiert. Die Ränder können auch grob sein, mp3d soll gut für Einsteiger benutzbar sein und dann kann jeder angry birds als 2d selber programmieren...

Gruß Michael
Working on :lol: - LibSGD - MP3D Engine - 8)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von NicTheQuick »

Naja, man kann ja einen Umriss relativ leicht in Polygon umwandeln, das so viele Kanten bzw. Ecken hat wie der Umriss Pixel. Anschließend gibt es ja schon fertige Algorithmen um solche Polygone zu vereinfachen. Das wird ja zum Beispiel auch in Blender mit ganzen 3D-Gittermodellen gemacht. Also muss es sowas auch für 2D geben. Leider habe ich keine Ahnung wie solche Algorithmen heißen. Wahrscheinlich gibt es da auch noch verschiedene, die alle ganz unterschiedlich heißen, je nachdem, wer die erfunden hat.
Ein bisschen googlen sollte zum passenden Ergebnis führen.
Benutzeravatar
mpz
Beiträge: 505
Registriert: 14.06.2005 15:53
Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
Wohnort: Berlin, Tempelhof

Re: Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von mpz »

Danke NicTheQuick,

das Du mit mir vermutest das es Algorythmen dafür gibt. Allerdings gab Onkel Google mir noch kein nutzbares Ergebnis an die Hand 8)

Gruß Michael
Working on :lol: - LibSGD - MP3D Engine - 8)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von STARGÅTE »

Der Algo nett sich schlicht und einfach Vektorisierung.
Das was du gerne haben möchtest ist ein Pfad der Umrandung deiner Grafik, mit der Bedingung das es nur Strecken sind, und keine Kurven.

Kannst du vielleicht mal eine Beispiel Grafik hochladen (am besten mit Wunsch-Polygon), damit wir sehen wie der Weg sein soll.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von NicTheQuick »

Vielleicht helfen dir diese beiden Links weiter:
Raster-to-Vector algorithm
Douglas-Peucker-Algorithmus
Benutzeravatar
mpz
Beiträge: 505
Registriert: 14.06.2005 15:53
Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
Wohnort: Berlin, Tempelhof

Re: Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von mpz »

Hi,

es geht eigentlich nur um Umrisserkennung. Also bei dieser Grafík sollen nur die Umrisse des Haus erkannt werden (5 Eck oder noch genauer wenn man will). Z.B. wie rot dargestellt wird. Dann kann man z.B. Bälle auf das Dach fallen lasen umd die Physik funktioniert realistisch. Alternativ muss ich einen Editor programmieren und die Linien von Hand einzeichnen...

Nick the Quick -> das ist schon ein Ansatz, wobei ich die Algorythmen mir erst betrachten muss
Raster-to-Vector algorithm
Douglas-Peucker-Algorithmus


Bild

Gruß Michael
Working on :lol: - LibSGD - MP3D Engine - 8)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von NicTheQuick »

Für diesen Fall könnte man noch als Bedingung angeben, dass das Polygon am Ende konvex ist, es also keine Einbuchtungen nach innen gibt. So wird in deinem Beispiel die Dachrinne nicht betrachtet.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Erzeugung von Umrissen eines Bilddatei als Polygon

Beitrag von STARGÅTE »

Den Editor kann ich dir schnell schreiben (habe ja Erfahrung mit dem CanvasGadget ^^), zumal ich so ein Editor schon habe, weil ich es selbst brauchte um meinen Raumschiffe eine Hülle zu geben: Womit macht ihr die Kollisionserkennung

In welchem Format möchtest du den abschließen das Polygon? XML?
<Corner X="-0.44" Y="-0.65" />
<Corner X="-0.61" Y="0.09" />
Denn ich vermute eh, das selbst wenn du einen guten Algo hättest, eh an manchen Grafiken selbst Handanleben willst/musst.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten