KlassenKlassenKlassenKlassen | | | | Operatoren

check_differencecheck_differenceCheckDifferencecheck_differenceCheckDifferenceCheckDifference (Operator)

Name

check_differencecheck_differenceCheckDifferencecheck_differenceCheckDifferenceCheckDifference — Pixelweises Vergleichen zweier Bilder.

Signatur

check_difference(Image, Pattern : Selected : Mode, DiffLowerBound, DiffUpperBound, GrayOffset, AddRow, AddCol : )

Herror check_difference(const Hobject Image, const Hobject Pattern, Hobject* Selected, const char* Mode, const Hlong DiffLowerBound, const Hlong DiffUpperBound, const Hlong GrayOffset, const Hlong AddRow, const Hlong AddCol)

Herror T_check_difference(const Hobject Image, const Hobject Pattern, Hobject* Selected, const Htuple Mode, const Htuple DiffLowerBound, const Htuple DiffUpperBound, const Htuple GrayOffset, const Htuple AddRow, const Htuple AddCol)

Herror check_difference(Hobject Image, Hobject Pattern, Hobject* Selected, const HTuple& Mode, const HTuple& DiffLowerBound, const HTuple& DiffUpperBound, const HTuple& GrayOffset, const HTuple& AddRow, const HTuple& AddCol)

HRegion HImage::CheckDifference(const HImage& Pattern, const HTuple& Mode, const HTuple& DiffLowerBound, const HTuple& DiffUpperBound, const HTuple& GrayOffset, const HTuple& AddRow, const HTuple& AddCol) const

HRegionArray HImageArray::CheckDifference(const HImageArray& Pattern, const HTuple& Mode, const HTuple& DiffLowerBound, const HTuple& DiffUpperBound, const HTuple& GrayOffset, const HTuple& AddRow, const HTuple& AddCol) const

void CheckDifference(const HObject& Image, const HObject& Pattern, HObject* Selected, const HTuple& Mode, const HTuple& DiffLowerBound, const HTuple& DiffUpperBound, const HTuple& GrayOffset, const HTuple& AddRow, const HTuple& AddCol)

HRegion HImage::CheckDifference(const HImage& Pattern, const HString& Mode, Hlong DiffLowerBound, Hlong DiffUpperBound, Hlong GrayOffset, Hlong AddRow, Hlong AddCol) const

HRegion HImage::CheckDifference(const HImage& Pattern, const char* Mode, Hlong DiffLowerBound, Hlong DiffUpperBound, Hlong GrayOffset, Hlong AddRow, Hlong AddCol) const

void HOperatorSetX.CheckDifference(
[in] IHUntypedObjectX* Image, [in] IHUntypedObjectX* Pattern, [out] IHUntypedObjectX*Selected, [in] VARIANT Mode, [in] VARIANT DiffLowerBound, [in] VARIANT DiffUpperBound, [in] VARIANT GrayOffset, [in] VARIANT AddRow, [in] VARIANT AddCol)

IHRegionX* HImageX.CheckDifference(
[in] IHImageX* Pattern, [in] BSTR Mode, [in] Hlong DiffLowerBound, [in] Hlong DiffUpperBound, [in] Hlong GrayOffset, [in] Hlong AddRow, [in] Hlong AddCol)

static void HOperatorSet.CheckDifference(HObject image, HObject pattern, out HObject selected, HTuple mode, HTuple diffLowerBound, HTuple diffUpperBound, HTuple grayOffset, HTuple addRow, HTuple addCol)

HRegion HImage.CheckDifference(HImage pattern, string mode, int diffLowerBound, int diffUpperBound, int grayOffset, int addRow, int addCol)

Beschreibung

check_differencecheck_differenceCheckDifferencecheck_differenceCheckDifferenceCheckDifference wählt aus dem Eingabebild die Bildpunkte (g_{o} = g_{ImageImageImageImageImageimage}) aus, deren Grauwertabweichung von den entsprechenden Pixel in PatternPatternPatternPatternPatternpattern abhängig vom Parameter ModeModeModeModeModemode innerhalb bzw. außerhalb des vorgegebenen Werteintervalls [DiffLowerBoundDiffLowerBoundDiffLowerBoundDiffLowerBoundDiffLowerBounddiffLowerBound,DiffUpperBoundDiffUpperBoundDiffUpperBoundDiffUpperBoundDiffUpperBounddiffUpperBound] liegt. Sei g_{p} der Grauwert aus PatternPatternPatternPatternPatternpattern, der gegenüber g_{o} um den Vektor (AddRowAddRowAddRowAddRowAddRowaddRow,AddColAddColAddColAddColAddColaddCol) 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 ImageImageImageImageImageimage, geschnitten mit dem verschobenen Definitionsbereich von PatternPatternPatternPatternPatternpattern, 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 PatternPatternPatternPatternPatternpattern kleiner als ImageImageImageImageImageimage.

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  singlechannelimage(-array) objectHImageHImageHImageHImageXHobject (byte)

Eingabebild.

PatternPatternPatternPatternPatternpattern (input_object)  singlechannelimage(-array) objectHImageHImageHImageHImageXHobject (byte)

Vergleichsbild.

SelectedSelectedSelectedSelectedSelectedselected (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

Punkte, in denen sich die Bilder ähneln/unterscheiden.

ModeModeModeModeModemode (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Modus: bestimme ähnliche oder verschiedene Pixel.

Defaultwert: 'diff_outside' "diff_outside" "diff_outside" "diff_outside" "diff_outside" "diff_outside"

Wertevorschläge: 'diff_inside'"diff_inside""diff_inside""diff_inside""diff_inside""diff_inside", 'diff_outside'"diff_outside""diff_outside""diff_outside""diff_outside""diff_outside"

DiffLowerBoundDiffLowerBoundDiffLowerBoundDiffLowerBoundDiffLowerBounddiffLowerBound (input_control)  number HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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 DiffLowerBound DiffLowerBound DiffLowerBound DiffLowerBound diffLowerBound ≤ 255 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 2

Restriktion: -255 <= DiffLowerBound && DiffLowerBound <= 255

DiffUpperBoundDiffUpperBoundDiffUpperBoundDiffUpperBoundDiffUpperBounddiffUpperBound (input_control)  number HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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 DiffUpperBound DiffUpperBound DiffUpperBound DiffUpperBound diffUpperBound ≤ 255 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 2

Restriktion: -255 <= DiffUpperBound && DiffUpperBound <= 255

GrayOffsetGrayOffsetGrayOffsetGrayOffsetGrayOffsetgrayOffset (input_control)  number HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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 GrayOffset GrayOffset GrayOffset GrayOffset grayOffset ≤ 255 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 2

Restriktion: -255 <= GrayOffset && GrayOffset <= 255

AddRowAddRowAddRowAddRowAddRowaddRow (input_control)  point.y HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Zeilenkoordinate, um die das Vergleichsbild verschoben wird.

Defaultwert: 0

Wertevorschläge: -200, -100, -20, -10, 0, 10, 20, 100, 200

Typischer Wertebereich: -32000 ≤ AddRow AddRow AddRow AddRow AddRow addRow ≤ 32000 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

AddColAddColAddColAddColAddColaddCol (input_control)  point.x HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Spaltenkoordinate, um die das Vergleichsbild verschoben wird.

Defaultwert: 0

Wertevorschläge: -200, -100, -20, -10, 0, 10, 20, 100, 200

Typischer Wertebereich: -32000 ≤ AddCol AddCol AddCol AddCol AddCol addCol ≤ 32000 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 1

Komplexität

Sei A die Anzahl der gültigen Pixel, dann ist die Laufzeitkomplexität: O(A).

Ergebnis

check_differencecheck_differenceCheckDifferencecheck_differenceCheckDifferenceCheckDifference 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'"no_object_result""no_object_result""no_object_result""no_object_result""no_object_result", 'empty_region_result'"empty_region_result""empty_region_result""empty_region_result""empty_region_result""empty_region_result" und 'store_empty_region'"store_empty_region""store_empty_region""store_empty_region""store_empty_region""store_empty_region" einstellbar (siehe set_systemset_systemSetSystemset_systemSetSystemSetSystem). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

connectionconnectionConnectionconnectionConnectionConnection, select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape, reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain, select_grayselect_graySelectGrayselect_graySelectGraySelectGray, rank_regionrank_regionRankRegionrank_regionRankRegionRankRegion, dilation1dilation1Dilation1dilation1Dilation1Dilation1, openingopeningOpeningopeningOpeningOpening

Alternativen

sub_imagesub_imageSubImagesub_imageSubImageSubImage, dyn_thresholddyn_thresholdDynThresholddyn_thresholdDynThresholdDynThreshold

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren