compute method
double
compute(
- Image image
)
override
Implementation
@override
double compute(img.Image image) {
double sum = 0;
final width = image.width;
final height = image.height;
for (int y = 1; y < height - 1; y++) {
for (int x = 1; x < width - 1; x++) {
final pixel1 = pixelToGray(image, x - 1, y);
final pixel2 = pixelToGray(image, x + 1, y);
final pixel3 = pixelToGray(image, x, y - 1);
final pixel4 = pixelToGray(image, x, y + 1);
final dx = pixel2 - pixel1;
final dy = pixel4 - pixel3;
final difference = sqrt(dx * dx + dy * dy);
sum += difference * difference;
}
}
// Normalize the result
return sum / ((width - 2) * (height - 2));
}