hammingDistancePercentageOfTwoArtifacts static method
Calculates the normalized Hamming distance between two matrices.
Returns a double value between 0 and 1, where:
- 1.0 indicates perfect similarity (no differences)
- 0.0 indicates maximum dissimilarity
Implementation
static double hammingDistancePercentageOfTwoArtifacts(
final Artifact inputGrid,
final Artifact templateGrid,
) {
if (inputGrid.cols != templateGrid.cols) {
return 0;
}
if (inputGrid.rows != templateGrid.rows) {
return 0;
}
int matchingPixels = 0;
int totalPixels = 0;
for (int y = 0; y < inputGrid.rows; y++) {
for (int x = 0; x < inputGrid.cols; x++) {
if (inputGrid.cellGet(x, y) || templateGrid.cellGet(x, y)) {
totalPixels++;
if (inputGrid.cellGet(x, y) == templateGrid.cellGet(x, y)) {
matchingPixels++;
}
}
}
}
if (totalPixels == 0) {
return 0.0;
}
return matchingPixels / totalPixels;
}