| Operatoren |
inpainting_ced — Inpainting eines Bildbereiches durch kohärenzverstärkende Diffusion.
inpainting_ced(Image, Region : InpaintedImage : Sigma, Rho, Theta, Iterations : )
Der Operator inpainting_ced führt einen anisotropen Diffusionsvorgang in der Region Region des Eingabebildes Image durch mit dem Ziel, durch Verstärkung der Kohärenz der in Image enthaltenen Bildstrukturen unterbroche Bildkanten diffusiv miteinander zu verbinden ohne sie dabei senkrecht zur Kantenrichtung zu verschmieren. Dieser Mechanismus entspricht dem des Operators coherence_enhancing_diff, der auf einer Diskretisierung der anisotropen Diffusionsgleichung
Um die Kantenrichtungen insbesondere bei verrauschten Eingabedaten stabiler zu bestimmen, kann der Berechnung der Grauwertgradienten ein zusätzlicher isotroper Glättungsschritt vorgeschaltet werden. Der Parameter Sigma bestimmt die Stärke dieser Glättung als Standardabweichung des zugehörigen Gauß-Faltungskernes, wie er auch im Operator isotropic_diffusion zur isotropen Glättung eines Bildes verwendet wird.
Ebenso wie im Operator inpainting_mcf wird hier die Struktur der Bilddaten in Region durch Glättung der Niveaulinien vereinfacht. So lassen sich störende Objekte aus dem Bild entfernen, wobei die Kanten der Umgebung stetig fortgesetzt werden. Diesen Vorgang bezeichnet man als Image Inpainting. Ziel ist es, dass keine auffälligen Artefakte oder Schmiereffekte zurückbleiben, damit die Bildmanipulation für einen menschlichen Beobachter möglichst schwach sichtbar wird.
Während die Matrix G im Fall des Krümmungsflusses inpainting_mcf gegeben wird durch
Die Diffusionsrichtung wird bei inpainting_mcf also alleine durch die lokale Richtung des Grauwertgradienten bestimmt, wohingegen die makroskopische Struktur der Bildobjekte auf der Skala Rho wiedergibt und die Stärke der Diffusion in inpainting_ced davon abhängt, wie gut diese Struktur definiert ist.
Um bestmögliche Übereinstimmung der erzeugten Kanten mit den Bilddaten der Umgebung zu erreichen, werden nicht wie bei Filtern üblich die Grauwerte am Rand des Rechengebietes Region gespiegelt, um die Glättung mit der Filtermaske zum Wert Rho auf den randnahen Pixeln durchzuführen. Stattdessen wird die Existenz von Grauwerten auf einem ceil(3.1*Rho)+2 Pixel breiten Streifen um Region vorausgesetzt und diese Werte bei der Anwendung der Faltungsmaske mitverwendet. Das bedeutet, Region muss mindestens diesen Abstand zum Rand der Bildmatrix Image einhalten. Durch die Einbeziehung der Grauwerte und Richtungsinformationen in diesem erweiterten Gebiet wird erreicht, dass die Fortsetzung der Kanten nicht nur stetig, sondern auch glatt, das heißt ohne Knicke, erfolgt. Es 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.
Um die Anzahl der notwendigen Iterationen bis zum Erreichen eines zufriedenstellenden Zustandes zu reduzieren, kann es sinnvoll sein, die Grauwertmatrix in Region vor Aufruf von inpainting_ced durch den Operator harmonic_interpolation mit der harmonischen Interpolante, einer stetigen Funktion mit minimaler Krümmung, vorzuinitialisieren.
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.
Glättungsparameter für Ableitungsoperator.
Defaultwert: 0.5
Wertevorschläge: 0.0, 0.1, 0.5, 1.0
Restriktion: Sigma >= 0
Glättungsparameter für Diffusionskoeffizienten.
Defaultwert: 3.0
Wertevorschläge: 0.0, 1.0, 3.0, 5.0, 10.0, 30.0
Restriktion: Rho >= 0
Zeitschritt.
Defaultwert: 0.5
Wertevorschläge: 0.1, 0.2, 0.3, 0.4, 0.5
Restriktion: 0 < Theta <= 0.5
Anzahl Iterationen.
Defaultwert: 10
Wertevorschläge: 1, 5, 10, 20, 50, 100, 500
Restriktion: Iterations >= 1
read_image (Image, 'fabrik')
gen_rectangle1 (Rectangle, 270, 180, 320, 230)
harmonic_interpolation (Image, Rectangle, InpaintedImage, 0.01)
inpainting_ced (InpaintedImage, Rectangle, InpaintedImage2, \
0.5, 3.0, 0.5, 1000)
dev_display(InpaintedImage2)
harmonic_interpolation, inpainting_ct, inpainting_aniso, inpainting_mcf, inpainting_texture
J. Weickert, V. Hlavac, R. Sara; „Multiscale texture
enhancement“; Computer analysis of images and patterns, Lecture
Notes in Computer Science, Vol. 970, pp. 230-237; Springer,
Berlin; 1995.
J. Weickert, B. ter Haar Romeny, L. Florack, J. Koenderink,
M. Viergever; „A review of nonlinear diffusion filtering“;
Scale-Space Theory in Computer Vision, Lecture Notes in
Comp. Science, Vol. 1252, pp. 3-28; Springer, Berlin; 1997.
Foundation
| Operatoren |