Skip to content

hamming_distance_normHammingDistanceNormHammingDistanceNormhamming_distance_normhamming_distance_norm🔗

Short description🔗

hamming_distance_normHammingDistanceNormHammingDistanceNormhamming_distance_normhamming_distance_norm — Hamming distance between two regions using normalization.

Signature🔗

hamming_distance_norm( region Regions1, region Regions2, string Norm, out integer Distance, out real Similarity )void HammingDistanceNorm( const HObject& Regions1, const HObject& Regions2, const HTuple& Norm, HTuple* Distance, HTuple* Similarity )static void HOperatorSet.HammingDistanceNorm( HObject regions1, HObject regions2, HTuple norm, out HTuple distance, out HTuple similarity )def hamming_distance_norm( regions_1: HObject, regions_2: HObject, norm: MaybeSequence[str] ) -> Tuple[Sequence[int], Sequence[float]]

def hamming_distance_norm_s( regions_1: HObject, regions_2: HObject, norm: MaybeSequence[str] ) -> Tuple[int, float]Herror hamming_distance_norm( const Hobject Regions1, const Hobject Regions2, const char* Norm, Hlong* Distance, double* Similarity )

Herror T_hamming_distance_norm( const Hobject Regions1, const Hobject Regions2, const Htuple Norm, Htuple* Distance, Htuple* Similarity )

HTuple HRegion::HammingDistanceNorm( const HRegion& Regions2, const HTuple& Norm, HTuple* Similarity ) const

Hlong HRegion::HammingDistanceNorm( const HRegion& Regions2, const HString& Norm, double* Similarity ) const

Hlong HRegion::HammingDistanceNorm( const HRegion& Regions2, const char* Norm, double* Similarity ) const

Hlong HRegion::HammingDistanceNorm( const HRegion& Regions2, const wchar_t* Norm, double* Similarity ) const (Windows only)

HTuple HRegion.HammingDistanceNorm( HRegion regions2, HTuple norm, out HTuple similarity )

int HRegion.HammingDistanceNorm( HRegion regions2, string norm, out double similarity )

Description🔗

The operator hamming_distance_normHammingDistanceNorm returns the hamming distance between two regions, i.e., the number of pixels of the regions which are different (Distancedistancedistance). Before calculating the difference the region in Regions1regions1regions_1 is normalized onto the regions in Regions2regions2regions_2. The result is the number of pixels contained in one region but not in the other:

\[\begin{eqnarray*} \textrm{Distance} = |Norm(\textrm{Regions1}) \cap \overline{\textrm{Regions2}}| + |\textrm{Regions2} \cap \overline{Norm(\textrm{Regions1})}| \end{eqnarray*}\]

The parameter Similaritysimilaritysimilarity describes the similarity between the two regions based on the hamming distance Distancedistancedistance:

\[\begin{eqnarray*} \textrm{Similarity} = 1 - \frac{\textrm{Distance}} {|Norm(\textrm{Regions1})| + |\textrm{Regions2}|} \end{eqnarray*}\]

The following types of normalization are available:

  • 'center'"center": The region is moved so that both regions have the save center of gravity.

If both regions are empty Similaritysimilaritysimilarity is set to 0. The regions with the same index from both input parameters are always compared.

Attention🔗

In both input parameters the same number of regions must be passed.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

Parameters🔗

Regions1regions1regions_1 (input_object) region(-array) → objectHObjectHRegionHObjectHobject

Regions to be examined.

Regions2regions2regions_2 (input_object) region(-array) → objectHObjectHRegionHObjectHobject

Comparative regions.

Normnormnorm (input_control) string(-array) → (string)HTuple (HString)HTuple (string)MaybeSequence[str]Htuple (char*)

Type of normalization.

Default: 'center'"center"
List of values: 'center'"center"

Distancedistancedistance (output_control) integer(-array) → (integer)HTuple (Hlong)HTuple (int / long)Sequence[int]Htuple (Hlong)

Hamming distance of two regions.

Assertion: Distance >= 0

Similaritysimilaritysimilarity (output_control) real(-array) → (real)HTuple (double)HTuple (double)Sequence[float]Htuple (double)

Similarity of two regions.

Assertion: 0 <= Similarity && Similarity <= 1

Complexity🔗

If \(F\) is the area of a region the mean runtime complexity is \(O(\sqrt{F})\).

Result🔗

hamming_distance_norm returns the value 2 (H_MSG_TRUE) if the number of objects in both parameters is the same and is not 0. The behavior in case of empty input (no input objects available) is set via the operator set_system('no_object_result',<Result>). The behavior in case of empty region (the region is the empty set) is set via set_system('empty_region_result',<Result>). If necessary an exception is raised.

Combinations with other operators🔗

Combinations

Possible predecessors

thresholdThreshold, regiongrowingRegiongrowing, connectionConnection

Alternatives

intersectionIntersection, complementComplement, area_centerAreaCenter

See also

hamming_change_regionHammingChangeRegion

Module🔗

Foundation