Options
2010
Journal Article
Titel
Effiziente Verarbeitung von Bilddaten mit C# und .NET: Pixelschubserei mit .NET
Abstract
Im Bereich der Bildverarbeitung ist die Laufzeit der Algorithmen häufig ein entscheidender Faktor. Aus diesem Grund kommen zur Realisierung traditionsgemäß native Programmiersprachen wie C, C++ oder sogar Assembler zum Einsatz, die es erlauben besonders zeitkritische Teile des Algorithmus maschinennah zu optimieren. Das Vorurteil, dass managed Sprachen wie C# für eine Umsetzung ungeeignet seien, bedingt durch dynamische Faktoren und Overhead wie etwa den garbage collector, hält sich hartnäckig. Hierbei wird jedoch meist unterschlagen, dass es mit einer modernen Programmiersprache wie C# sehr wohl möglich ist, Algorithmen maschinennah zu formulieren und somit Laufzeiten zu erreichen, die sich nicht mehr erheblich von denen einer nativen Sprachen unterscheiden. Gleichzeitig ergibt sich bei der Verwendung von C# der Vorteil, dass die komfortablen Datenstrukturen und Algorithmen des dot.net Frameworks zur Bearbeitung von Bilddaten genutzt werden können und somit eine Realisierung beschleunigen und vereinfachen. Dieser Artikel stellt ein effizientes Verfahren zur Manipulation von Bilddaten in C# und unter Verwendung des dot.net Frameworks vor. Hierbei werden Farbbilder (24-Bpp), sowie Grauwertbilder (8-Bpp) gleichermaßen berücksichtigt. Im Anschluss wird exemplarisch ein bekannter Algorithmus zur Detektion von Kanten in Bildern mit Hilfe der vorher erarbeiteten Grundlagen realisiert. Darüber hinaus werden hilfreiche Tipps zum Debugging der Algorithmen im Zusammenhang mit Visual Studio (Stichwort: Debugging Visualizer) genannt.