| Operatoren |
inpainting_aniso — Inpainting eines Bildbereiches durch anisotrope Diffusion.
inpainting_aniso(Image, Region : InpaintedImage : Mode, Contrast, Theta, Iterations, Rho : )
Der Operator inpainting_aniso nutzt die anisotrope Diffusion von Grauwerten nach dem Modell von Perona und Malik, um an die Bildregion Region des Eingabebildes Image angrenzende Bildkanten in Region hinein fortzusetzen und zu verbinden.
Dadurch kann die Struktur der Bildkanten in Region konsistent zur umgebenden Bildmatrix gemacht werden, so dass eine Überdeckung von Fehlstellen oder Störobjekten im Eingabebild, ein sogenanntes Inpainting, für einen menschlichen Beobachter schwächer in Erscheinung tritt, da keine auffälligen Artefakte oder Schmiereffekte zurückbleiben.
Ordnet man dem Bild eine Grauwertfunktion u zu, so ist der Algorithmus eine Diskretisierung der partiellen Differentialgleichung
Ziel der anisotropen Diffusion, die auch als nichtlinear isotrope Diffusion bezeichnet wird, ist es ursprünglich, in flächigen Bildbereichen Bildstörungen wie Rauschen zu eliminieren, ohne dabei Bildkanten zu verwischen. Die Unterscheidung zwischen Kanten und Flächen wird durch den Schwellwert Contrast für die Größe der Grauwertdifferenz zwischen benachbarten Pixeln getroffen. Contrast wird auch als Kontrastparameter bezeichnet und mit c abgekürzt. Wird die Kanteninformation durch Glättung der Kantenamplitude in der Umgebung der bereits vorhandenen Kanten ausgebreitet, so ist es darüber hinaus möglich, die Kanten in das Rechengebiet Region hinein fortzusetzen. Die Standardabweichung dieses Glättungsvorganges wird durch den Parameter Rho bestimmt.
Der verwendete Algorithmus entspricht im Wesentlichen dem im anisotropen Diffusionsfilter anisotropic_diffusion, allerdings geschieht hier keine Randbehandlung durch Spiegelung der Grauwerte am Rand von Region. Stattdessen ist dieses Verfahren nur auf Regionen anwendbar, die einen Abstand von mindestens 3 Pixeln zum Rand der Bildmatrix von Image einhalten, da die Grauwerte auf diesem Streifen um Region genutzt werden, um Randwerte für die verwendete Differentialgleichung zu definieren und so die Konsistenz zur Umgebung von Region herzustellen. Dabei ist zu beachten, dass der Inpaintingvorgang sich auf diejenigen Pixel beschränkt, die innerhalb der ROI des Eingabebildes Image liegen. Umfasst diese nicht die gesamte Region Region, so wird ein Streifen um die Schnittmenge aus Region und der ROI verwendet, um die Randwerte zu definieren.
Das Ergebnis des Diffusionsvorganges ist auch hier abhängig von den Grauwerten im Rechengebiet des Eingabebildes Image. Es ist zu beachten, dass bereits vorhandene Bildkanten dort erhalten werden. Dies gilt insbesondere auch für Grauwertsprünge am Rand von Region, die etwa durch Inpainting mit einem konstanten Grauwert entstehen. Soll das Verfahren zum Inpainting verwendet werden, empfiehlt es sich, zuvor den Operator harmonic_interpolation anzuwenden, um sämtliche störenden Kanten aus dem Rechengebiet zu entfernen und die maximale Grauwertdifferenz zwischen Nachbarpixeln zu minimieren, es sei denn das ursprüngliche Bild enthält in Region bereits Informationen, die erhalten werden sollen.
Der variable Diffusionskoeffizient g der Differentialgleichung kann verschiedenen monoton fallenden Funktionen mit Werten zwischen 0 und 1 folgen und bestimmt das Antwortverhalten des Diffusionsvorganges auf eine Kante. Über den Parameter Mode stehen die folgenden Funktionen zur Verfügung:
Darüber hinaus ist für Mode noch der Wert 'shock' möglich, durch den eine kontrastinvariante Abwandlung der anisotropen Diffusion gewählt wird. In dieser Variante wird die Erzeugung von Kanten nicht durch die Variation des Diffusionskoeffizienten g erreicht, sondern ein konstanter Koeffizient g=1 und damit isotrope Diffusion verwendet. Zusätzlich wird ein Schockfilter vom Typ
Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben wird. Weitere Informationen können im Kapitel Filter gefunden werden.
Eingabebild.
Inpaintingregion.
Ausgabebild.
Art des Kantenschärfungsalgorithmus.
Defaultwert: 'weickert'
Werteliste: 'parabolic', 'perona-malik', 'shock', 'weickert'
Kontrastparameter.
Defaultwert: 5.0
Wertevorschläge: 0.5, 2.0, 5.0, 10.0, 20.0, 50.0, 100.0
Restriktion: Contrast > 0
Schrittweite.
Defaultwert: 0.5
Wertevorschläge: 0.5, 1.0, 5.0, 10.0, 30.0, 100.0
Restriktion: Theta > 0
Anzahl Iterationen.
Defaultwert: 10
Wertevorschläge: 1, 3, 10, 100, 500
Restriktion: Iterations >= 1
Glättungkoeffizient für Kanteninformation.
Defaultwert: 3.0
Wertevorschläge: 0.0, 0.1, 0.5, 1.0, 3.0, 10.0
Restriktion: Rho >= 0
read_image (Image, 'fabrik')
gen_rectangle1 (Rectangle, 270, 180, 320, 230)
harmonic_interpolation (Image, Rectangle, InpaintedImage, 0.01)
inpainting_aniso (InpaintedImage, Rectangle, InpaintedImage2, \
'perona-malik', 5.0, 100, 50, 0.5)
dev_display(InpaintedImage2)
harmonic_interpolation, inpainting_ct, inpainting_mcf, inpainting_texture, inpainting_ced
J. Weickert; „Anisotropic Diffusion in Image Processing“; PhD
Thesis; Fachbereich Mathematik, Universität Kaiserslautern; 1996.
P. Perona, J. Malik; „Scale-space and edge detection using
anisotropic diffusion“; Transactions on Pattern Analysis and
Machine Intelligence 12(7), pp. 629-639; IEEE; 1990.
G. Aubert, P. Kornprobst; „Mathematical Problems in Image
Processing“; Applied Mathematical Sciences 147; Springer, New
York; 2002.
Foundation
| Operatoren |