efi-flicker-test: media de brillo vía %[fx:mean] normalizado (0..1)

El 1er número de identify -verbose varía por quantum (10.99 en PPM vs 0.129 en
PNG para la misma imagen); el normalizado 0..1 es fiable. Validado: negro→0,
texto→11, umbral 1.5 los separa.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-10 20:21:48 -04:00
co-authored by Claude Opus 4.8
parent 548f30b3ef
commit fd033fb920
+4 -4
View File
@@ -58,10 +58,10 @@ kill "$QPID" 2>/dev/null || true; wait "$QPID" 2>/dev/null || true
echo "==> analizando el framebuffer capturado"
[ -r "$SHOT" ] || { echo "✗ no se capturó el framebuffer"; exit 1; }
# media de brillo normalizada 0..255 (imagemagick reporta en % o 0..1 según versión → forzamos 0..255)
MEAN=$(identify -verbose "$SHOT" | awk '/[Mm]ean:/ {gsub(/[()]/,""); print $2; exit}')
# si identify reportó fracción 0..1, escalar ×255
MEAN255=$(python3 -c "m=float('$MEAN'); print(m*255 if m<=1.0 else m)")
# %[fx:mean] = media de brillo NORMALIZADA 0..1 (fiable entre versiones/quantum; el 1er número de
# `identify -verbose` varía por quantum). ×255 para expresarla 0..255. Negro ≈ 0; texto de boot ≈ 11.
MEANNORM=$(identify -format '%[fx:mean]' "$SHOT")
MEAN255=$(python3 -c "print(float('$MEANNORM')*255)")
GEO=$(identify -format '%wx%h' "$SHOT")
printf " framebuffer %s · media de brillo = %.3f / 255 (umbral cero-parpadeo: < %.1f)\n" "$GEO" "$MEAN255" "$MEAN_MAX"