Los 'problemas' que me encontré
1. Extracción del QR
El portal web de ¿Quién? renderiza el QR en un canvas. No es una imagen normal que puedas descargar. Tuve que inyectar JavaScript para extraer los datos:
const canvas = document.querySelector('canvas');
return canvas.toDataURL('image/png');
2. Detección automática en el video
Para el video, necesitaba detectar dónde está el QR original en el template para reemplazarlo. Implementé un sistema en cascada:
1. cv2.QRCodeDetector() - Detección nativa de OpenCV
2. Búsqueda de contornos cuadrados - Fallback geométrico
3. Posición manual - Si todo falla, centro-superior
Funciona el 90% de las veces con detección automática. El resto usa el fallback manual.
3. Integración natural del QR
Para que no se vea fake, añadí efectos sutiles:
- Fade-in en los primeros frames
- Breathing effect con variación de brillo
- Fondo blanco coherente con la UI