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
nach Weickert beruht. Diese Gleichung, mit einer von den Grauwerten
in Image
abhängigen 2x2
Koeffizientenmatrix G, ist eine Verallgemeinerung der
Krümmungsfluss- oder intrinsischen Wärmeleitungsgleichung
mit der durch das Eingabebild Image
zu einem Zeitpunkt
definierten Grauwertfunktion u. Der
Operator mean_curvature_flow
ist eine direkte Anwendung der
Krümmungsflussgleichung, mit Hilfe des Operators
inpainting_mcf
, kann sie auch für das Image Inpainting
genutzt werden. Die diskrete Gleichung wird in Iterations
Zeitschritten der Länge Theta
gelöst, so dass das
Ausgabebild InpaintedImage
die Grauwertfunktion zur Zeit
enthält.
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
wobei I die Einheitsmatrix bezeichnet, wird diese Matrix in
inpainting_ced
komponentenweise in Ortsrichtung durch einen
Gaußfilter mit Standardabweichung Rho
geglättet und
anschließend aus den Eigenwerten
und Eigenvektoren
der so entstandenen Matrix die
endgültige Koeffizientenmatrix
konstruiert, wobei die Funktionen
empirisch bestimmt und aus der Veröffentlichung von Weickert
entnommen sind.
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.
Image
(input_object) (multichannel-)image(-array) →
object (byte / uint2 / real)
Eingabebild.
Region
(input_object) region →
object
Inpaintingregion.
InpaintedImage
(output_object) image(-array) →
object (byte / uint2 / real)
Ausgabebild.
Sigma
(input_control) real →
(real)
Glättungsparameter für Ableitungsoperator.
Defaultwert: 0.5
Wertevorschläge: 0.0, 0.1, 0.5, 1.0
Restriktion: Sigma >= 0
Rho
(input_control) real →
(real)
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
Theta
(input_control) real →
(real)
Zeitschritt.
Defaultwert: 0.5
Wertevorschläge: 0.1, 0.2, 0.3, 0.4, 0.5
Restriktion: 0 < Theta <= 0.5
Iterations
(input_control) integer →
(integer)
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