compare method

  1. @override
double compare(
  1. Image src1,
  2. Image src2
)
override

Computes euclidean color distance between two images of the same size

Implementation

@override
double compare(Image src1, Image src2) {
  // Delegates image resizing to parent
  super.compare(src1, src2);

  var sum = 0.0;

  var numPixels = _pixelListPair._first.length;

  var alphaBit = (ignoreAlpha) ? 0 : 1;

  for (var i = 0; i < numPixels; i++) {
    sum += sqrt(pow(
            (_pixelListPair._first[i]._red - _pixelListPair._second[i]._red) /
                255,
            2) +
        pow(
            (_pixelListPair._first[i]._blue -
                    _pixelListPair._second[i]._blue) /
                255,
            2) +
        pow(
            (_pixelListPair._first[i]._green -
                    _pixelListPair._second[i]._green) /
                255,
            2) +
        (alphaBit *
            pow(
                (_pixelListPair._first[i]._alpha -
                        _pixelListPair._second[i]._alpha) /
                    255,
                2)));
  }

  return sum / (numPixels * sqrt(3 + alphaBit));
}