gammaCorrection static method
Applies gamma correction for low-light brightness enhancement.
gamma — Gamma value. < 1.0 brightens (e.g., 0.5), > 1.0 darkens.
Typical values: 0.4–0.7 for low-light enhancement.
Inspired by Apple Vision's auto-exposure compensation.
Implementation
static Uint8List gammaCorrection(
Uint8List gray,
int width,
int height, {
double gamma = 0.6,
}) {
if (gray.isEmpty) return gray;
// Build gamma LUT
final lut = Uint8List(256);
final invGamma = 1.0 / gamma;
for (int i = 0; i < 256; i++) {
lut[i] = (255.0 * math.pow(i / 255.0, invGamma)).round().clamp(0, 255);
}
final result = Uint8List(gray.length);
for (int i = 0; i < gray.length; i++) {
result[i] = lut[gray[i]];
}
return result;
}