unsharpMask static method

Uint8List unsharpMask(
  1. Uint8List gray,
  2. int width,
  3. int height, {
  4. double amount = 1.0,
  5. double blurSigma = 1.0,
})

Applies unsharp mask sharpening.

Enhances edges by subtracting a blurred version from the original. Formula: sharpened = original + amount × (original - blurred)

amount — Sharpening strength (0.5–2.0 typical). Default: 1.0. blurSigma — Sigma for the Gaussian blur pass. Default: 1.0.

Implementation

static Uint8List unsharpMask(
  Uint8List gray,
  int width,
  int height, {
  double amount = 1.0,
  double blurSigma = 1.0,
}) {
  final blurred = gaussianBlur(gray, width, height, kernelSize: 5, sigma: blurSigma);
  final result = Uint8List(gray.length);

  for (int i = 0; i < gray.length; i++) {
    final diff = gray[i] - blurred[i];
    final sharpened = gray[i] + (diff * amount).round();
    result[i] = sharpened.clamp(0, 255);
  }

  return result;
}