Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Partielle Ableitung in Graustufenbildern (https://www.delphipraxis.net/103776-partielle-ableitung-graustufenbildern.html)

Corpsman 21. Nov 2007 16:04


Partielle Ableitung in Graustufenbildern
 
Hi Leuts,

Ich befürchte zwar das hier keiner weis was ich haben will, aber wer nicht versucht dem kann auch nicht geholfen werden ;).

Ich versuche gerade einen Anisotropisch Inhomogenen Diffusionsfilter zu implementieren.

Die Programmiertechnische Seite ist dabei das Kleinste Problem.

Im Speziellen braucht dieser Filter eine Sogenante Hesse Matrix.

Diese Ist in meinem fall 2x2 Groß, beinhaltet also die Partiellen Ableitungen 2. Ordnung. also 4 Stück verschiedene.

dx^2, dxdy, dydx, dy^2

Mit Hilfe diverser Taylerreihenentwicklungen ist es mir gelungen die dx^2 und dy^2 Korreckt zu berechnen ( das weis ich weil der Isotropisch Inhomogene Diffusionsfilter diese Werte benötigt, und dieser funktioniert 1a ).

Mein Problem sind also die Partiellen ableitungen dxdy und dydx

Mein Bisheriger versuch war mittels eines sogenanten Twist Vektors. Aber Leider kommt da nichts Brauchbares raus. Trotzdem hier mein Ansatz.
Delphi-Quellcode:

Function Derif2XYYX(Const Bitmap: Tbitmap; x, y: Integer): FPoint;
Var
  d3: TRGBF;
  p1, p2, p3, p4: TRGB;
Begin
  p1 := getpixel(bm, x - 1, y - 1);
  p2 := getpixel(bm, x + 1, y - 1);
  p3 := getpixel(bm, x - 1, y + 1);
  p4 := getpixel(bm, x + 1, y + 1);
  d3.r :=( p4.r + p1.r - p2.r - p3.r)/4;
  d3.g :=( p4.g + p1.g - p2.g - p3.g)/4;
  d3.b :=( p4.b + p1.b - p2.b - p3.b)/4;
  result.dx := d3;
  result.dy := d3;
End;
Man kann sehen das ich den Ansatz der Zentralen Differenzen versucht habe. Aber Leider geht dieser Ansatz nur bei dx^2 und dy^2 .

Weis hier vielleicht jemand wie's gehen soll ?

Angeblich solls ja gehn wenn man nen Besier Patch in die entsprechen vielen Stützwerte reinlegt und den kann man dann Partiell ableiten ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 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