org.openimaj.feature

Enum DoubleFVComparison

• Enum Constant Summary

Enum Constants
Enum Constant and Description
ARCCOS
The arccosine of the cosine similarity
BHATTACHARYYA
Bhattacharyya distance d(H1,H2) = sqrt( 1 - (1 / sqrt(sumI(H1(I)) * sumI(H2(I))) ) * sumI( sqrt(H1(I) * H2(I)) ) )
CHI_SQUARE
Chi-squared distance d(H1,H2) = 0.5 * sumI[(H1(I)-H2(I))^2 / (H1(I)+H2(I))]
CITY_BLOCK
City-block (L1) distance d(H1,H2) = sumI( abs(H1(I)-H2(I)) )
CORRELATION
Correlation s(H1,H2) = sumI( H'1(I) * H'2(I) ) / sqrt( sumI[H'1(I)2]^2 * sumI[H'2(I)^2] ) where H'k(I) = Hk(I) - (1/N) * sumJ( Hk(J) ); N=number of FeatureVector bins
COSINE_DIST
Cosine distance (-COSINE_SIM)
COSINE_SIM
Cosine similarity (sim of 1 means identical) s(H1,H2)=sumI(H1(I) * H2(I))) / (sumI(H1(I)^2) sumI(H2(I)^2))
EUCLIDEAN
Euclidean distance d(H1,H2) = Math.sqrt( sumI( (H1(I)-H2(I))^2 ) )
HAMMING
Hamming Distance d(H1,H2) = sumI(H1(I) == H2(I) ? 1 : 0)
INNER_PRODUCT
Inner product s(H1,H2)=sumI(H1(I) * H2(I))
INTERSECTION
Histogram intersection s(H1,H2) = sumI( min(H1(I), H2(I)) )
JACCARD_DISTANCE
Jaccard distance.
PACKED_HAMMING
Hamming Distance for packed bit strings d(H1,H2) = sumI(H1(I) == H2(I) ? 1 : 0)
SUM_SQUARE
Sum-square distance d(H1,H2) = sumI( (H1(I)-H2(I))^2 )
SYMMETRIC_KL_DIVERGENCE
The symmetric Kullback-Leibler divergence.
• Enum Constant Detail

• EUCLIDEAN

public static final DoubleFVComparison EUCLIDEAN
Euclidean distance d(H1,H2) = Math.sqrt( sumI( (H1(I)-H2(I))^2 ) )
• CORRELATION

public static final DoubleFVComparison CORRELATION
Correlation s(H1,H2) = sumI( H'1(I) * H'2(I) ) / sqrt( sumI[H'1(I)2]^2 * sumI[H'2(I)^2] ) where H'k(I) = Hk(I) - (1/N) * sumJ( Hk(J) ); N=number of FeatureVector bins
• CHI_SQUARE

public static final DoubleFVComparison CHI_SQUARE
Chi-squared distance d(H1,H2) = 0.5 * sumI[(H1(I)-H2(I))^2 / (H1(I)+H2(I))]
• BHATTACHARYYA

public static final DoubleFVComparison BHATTACHARYYA
Bhattacharyya distance d(H1,H2) = sqrt( 1 - (1 / sqrt(sumI(H1(I)) * sumI(H2(I))) ) * sumI( sqrt(H1(I) * H2(I)) ) )
• PACKED_HAMMING

public static final DoubleFVComparison PACKED_HAMMING
Hamming Distance for packed bit strings d(H1,H2) = sumI(H1(I) == H2(I) ? 1 : 0)
• COSINE_SIM

public static final DoubleFVComparison COSINE_SIM
Cosine similarity (sim of 1 means identical) s(H1,H2)=sumI(H1(I) * H2(I))) / (sumI(H1(I)^2) sumI(H2(I)^2))
• SYMMETRIC_KL_DIVERGENCE

public static final DoubleFVComparison SYMMETRIC_KL_DIVERGENCE
The symmetric Kullback-Leibler divergence. Vectors must only contain positive values; internally they will be converted to double arrays and normalised to sum to unit length.
• Method Detail

• values

public static DoubleFVComparison[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
for (DoubleFVComparison c : DoubleFVComparison.values())
System.out.println(c);

Returns:
an array containing the constants of this enum type, in the order they are declared
• valueOf

public static DoubleFVComparison valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
Parameters:
name - the name of the enum constant to be returned.
Returns:
the enum constant with the specified name
Throws:
IllegalArgumentException - if this enum type has no constant with the specified name
NullPointerException - if the argument is null
• compare

public abstract double compare(double[] h1,
double[] h2)
Compare two feature vectors in the form of native arrays, returning a score or distance.
Specified by:
compare in interface DoubleFVComparator
Parameters:
h1 - the first feature array
h2 - the second feature array
Returns:
a score or distance