check_difference — Pixelweises Vergleichen zweier Bilder.
check_difference(Image, Pattern : Selected : Mode, DiffLowerBound, DiffUpperBound, GrayOffset, AddRow, AddCol : )
check_difference wählt aus dem Eingabebild die
Bildpunkte (g_{o} = g_{Image}) aus, deren Grauwertabweichung
von den entsprechenden Pixel in Pattern abhängig vom
Parameter Mode innerhalb bzw.
außerhalb des vorgegebenen Werteintervalls
[DiffLowerBound,DiffUpperBound]
liegt. Sei g_{p} der
Grauwert aus Pattern, der gegenüber g_{o} um den
Vektor (AddRow,AddCol) verschoben ist.
Dann werden im Modus 'diff_inside' die Pixel g_{o} selektiert mit und im Modus 'diff_outside' die g_{o} mit g_o - g_p - GrayOffset < DiffLowerBound oder g_o - g_p - GrayOffset > DiffUpperBound
Dieser Test wird für alle Bildpunkte aus dem Definitionsbereich von
Image, geschnitten mit dem verschobenen
Definitionsbereich von Pattern, durchgeführt. Alle
Punkte, die die obige Bedingung erfüllen, werden in der
Ausgaberegion gespeichert. Die beiden Bilder können
unterschiedliche Größe haben. Typischerweise ist
Pattern kleiner als Image.
Image (input_object) singlechannelimage(-array) → object (byte)
Eingabebild.
Pattern (input_object) singlechannelimage(-array) → object (byte)
Vergleichsbild.
Selected (output_object) region(-array) → object
Punkte, in denen sich die Bilder ähneln/unterscheiden.
Mode (input_control) string → (string)
Modus: bestimme ähnliche oder verschiedene Pixel.
Defaultwert: 'diff_outside'
Wertevorschläge: 'diff_inside', 'diff_outside'
DiffLowerBound (input_control) number → (integer)
Untere Grenze der erlaubten Grauwertdifferenz.
Defaultwert: -5
Wertevorschläge: 0, -1, -2, -3, -5, -7, -10, -12, -15, -17, -20, -25, -30
Typischer Wertebereich: -255
≤
DiffLowerBound
≤
255 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 2
Restriktion: -255 <= DiffLowerBound && DiffLowerBound <= 255
DiffUpperBound (input_control) number → (integer)
Obere Grenze der erlaubten Grauwertdifferenz.
Defaultwert: 5
Wertevorschläge: 0, 1, 2, 3, 5, 7, 10, 12, 15, 17, 20, 25, 30
Typischer Wertebereich: -255
≤
DiffUpperBound
≤
255 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 2
Restriktion: -255 <= DiffUpperBound && DiffUpperBound <= 255
GrayOffset (input_control) number → (integer)
Korrekturgrauwert, der im Eingabebild abgezogen wird.
Defaultwert: 0
Wertevorschläge: -30, -25, -20, -17, -15, -12, -10, -7, -5, -3, -2, -1, 0, 1, 2, 3, 5, 7, 10, 12, 15, 17, 20, 25, 30
Typischer Wertebereich: -255
≤
GrayOffset
≤
255 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 2
Restriktion: -255 <= GrayOffset && GrayOffset <= 255
AddRow (input_control) point.y → (integer)
Zeilenkoordinate, um die das Vergleichsbild verschoben wird.
Defaultwert: 0
Wertevorschläge: -200, -100, -20, -10, 0, 10, 20, 100, 200
Typischer Wertebereich: -32000
≤
AddRow
≤
32000 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
AddCol (input_control) point.x → (integer)
Spaltenkoordinate, um die das Vergleichsbild verschoben wird.
Defaultwert: 0
Wertevorschläge: -200, -100, -20, -10, 0, 10, 20, 100, 200
Typischer Wertebereich: -32000
≤
AddCol
≤
32000 (lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Sei A die Anzahl der gültigen Pixel, dann ist die Laufzeitkomplexität: O(A).
check_difference liefert den Wert 2 (H_MSG_TRUE), falls die
Parameter korrekt sind. Für das Verhalten bzgl. der Eingabebilder
und Ausgaberegionen sind die Flags 'no_object_result',
'empty_region_result' und 'store_empty_region'
einstellbar (siehe set_system). Gegebenenfalls wird
eine Fehlerbehandlung durchgeführt.
connection,
select_shape,
reduce_domain,
select_gray,
rank_region,
dilation1,
opening
Foundation