AW: Berechnungen mit Gleitkomma Werten
|
AW: Berechnungen mit Gleitkomma Werten
Zitat:
Du schreibst, dass du mit ganzzahligen Werten rechnen wirst. Das führt fast sicher zu mehr Geschwindigkeit bei den Berechnungen. Das Problem der Rechengenauigkeit bleibt aber natürlich genauso wie bei den Gleitkommazahlen bestehen (ein n bit unsigned integer kann nur 2^n voneinander verschiedene Zahlen speichern). Bei RGB Werten kannst du aber die Berechnungen mit integer Werten genügend genau approximieren. Ich habe hier eine Prozedur gepostet, mit welcher du zu gegebenen Farbgewichten für R G B eine gute integer Approximation finden kannst (verwendete Norm natürlich anpassbar). Wenn du zusätzlich auch eine Translation der Farbwerte benötigst, musst du die Prozedur anpassen. Wenn du Bilder bearbeitest und wie ich vermute Farbwerte mittels affiner Abbildung verändern willst, dann lohnt sich unter Umständen ein Blick in GDI+, dort Colormatrix. GDIPUTIL, GDIPOBJ, GDIPAPI in Delphi einbinden und loslegen ;-). Die 5x5 (RGB Translation und Alpha) Matrix rechnet zwar auch mit Fliesskommazahlen, GDI+ arbeitet aber relativ schnell. Je nach Aufgabe und Hardware (GDI+) lohnt sich selber rechnen. Beispiele auf meinem Notebook: (a) Umrechnung in Graustufe 1 Mio Pixel Bild 32 Bit.: mit integer Approximation: 1 ms. Mit GDI+: 15ms (GDI+ rechnet mit 5x5 Matrix und "doof" alle Werte für R G B einzeln). (b) 1 Mio Pixel 32it: Mit integer Approximation 3x3 Matrix plus setzen Alphakanal: unter 3ms. Mit GDI+: 15ms. (c) Wenn du statt mit integer Approximation mit Fliesskommazahlen rechnest, bist du weit über den GDI+ Zeiten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:04 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