texture_laws
— Texturfilter nach Laws.
texture_laws(Image : ImageTexture : FilterTypes, Shift, FilterSize : )
texture_laws
führt eine Texturtransformationen (nach Laws)
durch. Dazu wird das Bild mit einem speziellen Filter gefaltet.
Bei den Filtern handelt es sich um:
9 verschiedene 3×3-Matrizen, die sich aus folgenden drei Vektoren berechnen lassen: l = [ 1 2 1 ], e = [ -1 0 1 ], s = [ -1 2 -1 ] 25 verschiedene 5×5-Matrizen, die sich aus folgenden fünf Vektoren berechnen lassen: l = [ 1 4 6 4 1 ], e = [ -1 -2 0 2 1 ], s = [ -1 0 2 0 -1 ], w = [ -1 2 0 -2 1 ] r = [ 1 -4 6 -4 1 ], 49 verschiedene 7×7-Matrizen, die sich aus folgenden sieben Vektoren berechnen lassen: l = [ 1 6 15 20 15 6 1 ], e = [ -1 -4 -5 0 5 4 1 ], s = [ -1 -2 1 4 1 -2 -1 ], w = [ -1 0 3 0 -3 0 1 ], r = [ 1 -2 -1 4 -1 -2 1 ], u = [ 1 -4 5 0 -5 4 -1 ] o = [ -1 6 -15 20 -15 6 -1 ] Die Namen der Filter sind Abkürzungen für „Level“, „Edge“, „Spot“, „Wave“, „Ripple“, „Undulation“ und „Oscillation“.
Bei den meisten Filtern ist eine Reduktion der Grauwerte durch einen
Shift
durchzuführen. Auf diese Weise wird im Ausgabebild
der Unterschied zwischen zwei Texturen des Eingabebildes
vergleichbarer, sofern es sich um den geeigneten Filter handelt.
Der Name der Filter setzt sich aus den Buchstaben der beiden Vektoren zusammen (z.B. 'es'). Dabei gibt der erste Buchstabe die Faltung in Spaltenrichtung und der zweite die Faltung in Zeilenrichtung an.
texture_laws
kann auf OpenCL Geräten ausgeführt werden.
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* / int2* / uint2*) *erlaubt für Compute Devices
Bilder, die texturtransformiert werden sollen.
ImageTexture
(output_object) (multichannel-)image(-array) →
object (byte / int2 / uint2)
Texturbilder.
FilterTypes
(input_control) string →
(string)
Gewünschter Filter.
Defaultwert: 'el'
Wertevorschläge: 'll' , 'le' , 'ls' , 'lw' , 'lr' , 'lu' , 'lo' , 'el' , 'ee' , 'es' , 'ew' , 'er' , 'eu' , 'eo' , 'sl' , 'se' , 'ss' , 'sw' , 'sr' , 'su' , 'so' , 'wl' , 'we' , 'ws' , 'ww' , 'wr' , 'wu' , 'wo' , 'rl' , 're' , 'rs' , 'rw' , 'rr' , 'ru' , 'ro' , 'ul' , 'ue' , 'us' , 'uw' , 'ur' , 'uu' , 'uo' , 'ol' , 'oe' , 'os' , 'ow' , 'or' , 'ou' , 'oo'
Shift
(input_control) integer →
(integer)
Shift der Grauwerte zur Dynamikverringerung.
Defaultwert: 2
Wertevorschläge: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
FilterSize
(input_control) integer →
(integer)
Größe des Filterkerns.
Defaultwert: 5
Werteliste: 3, 5, 7
* Simple two-dimensional pixel classification dev_get_window (WindowHandle) read_image(Image,'combine') texture_laws(Image,Texture1,'es',3,7) texture_laws(Image,Texture2,'le',7,7) MaskSize := 51 mean_image(Texture1,H1,MaskSize,MaskSize) mean_image(Texture2,H2,MaskSize,MaskSize) dev_clear_window () dev_display (Image) dev_set_color ('green') write_string (WindowHandle, 'Mark region within one texture area') draw_region(Region,WindowHandle) reduce_domain(H1,Region,Foreground1) reduce_domain(H2,Region,Foreground2) histo_2dim(Region,Foreground1,Foreground2,Histo) get_image_size (Image, Width, Height) threshold(Histo,Characteristic_area,1,Width*Height) ShowIntermediateResult := 0 if (ShowIntermediateResult) histo_2dim(H1,H1,H2,HistoFull) dev_clear_window () dev_set_lut ('sqrt') dev_display (HistoFull) dev_set_draw ('margin') dev_display (Characteristic_area) stop () dev_set_lut ('default') dev_set_draw ('fill') endif class_2dim_sup(H1,H2,Characteristic_area,Seg) dev_display (Image) dev_set_color ('red') dev_display (Seg)
Sind die Parameterwerte korrekt, dann liefert texture_laws
den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine
Eingabebilder vorhanden) lässt sich mittels
set_system('no_object_result',<Result>)
festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
mean_image
,
binomial_filter
,
gauss_filter
,
median_image
,
histo_2dim
,
learn_ndim_norm
,
threshold
class_2dim_sup
,
class_ndim_norm
Laws, Kenneth Ivan. „Textured Image Segmentation“; Ph.D. Thesis, Department of Electrical Engineering, Image Processing Institute, University of Southern California, 1980
Foundation