AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Unit] Vektorisieren von Bitmaps
Thema durchsuchen
Ansicht
Themen-Optionen

[Unit] Vektorisieren von Bitmaps

Ein Thema von igel457 · begonnen am 1. Mai 2009
Antwort Antwort
Benutzerbild von igel457
igel457
Registriert seit: 31. Aug 2005
Hallo,

ich habe heute (ich wollte das schon länger mal machen) eine kleine Unit geschrieben, die die Umrisse eines Bitmaps in ein Polygon umwandelt.

Diese Funktionalität steckt in der Unit "AdVectorize.pas". Diese hat einige kleinere Abhängigkeiten zu Andorra 2D, mit einigen kleineren Abänderungen sollte sich diese Abhängigkeit jedoch einfach entfernen lassen.

Funktionsweise:
Zunächst werden alle Randpixel des Bitmaps erkannt und in eine Liste geschrieben. Der Vektorisierungsalgorithmus nimmt den ersten Punkt aus der Liste und sucht mit sich erhöhendem Suchradius nach einem weiteren Randpixel in der Nähe. Wird ein einziger Pixel gefunden, so wird dieser an das Ergebnispolygon angehängt und die Sache beginnt von neuem. Werden zwei oder mehr Pixel gefunden, so teilt sich der Löser in zwei Hälften auf: Zwei verschiedene Pixel werden ausprobiert. Es entsteht so ein binärer Baum. Am Ende wird das "Blatt", das die meisten Randpixel verarbeitet hat, als Lösung verwendet. Sind Pixel übrig geblieben, so wird versucht auch aus diesen ein weiteres Polygon zu "basteln".

Die Idee für einen solchen Algorithmus hatte ich schon vor eins oder zwei Jahren. Darüber, wie dieses Problem standardmäßig angegangen wird habe ich mich nicht informiert.

Vielleicht kann das Ganze jemand gebrauchen. Die Lösung ist nicht die schnellste - funktioniert aber erstaunlich gut.

Im Archiv ist ein Beispielprogramm vorhanden.

Andreas
Miniaturansicht angehängter Grafiken
screenshot_453.png  
Angehängte Dateien
Dateityp: 7z outline_146.7z (209,3 KB, 60x aufgerufen)
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
 
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz