jarondon82 commited on
Commit
aa6cb9f
·
1 Parent(s): 17acc92

Eliminar rectángulos de test y predeterminados para mostrar solo las detecciones reales

Browse files
Files changed (1) hide show
  1. streamlit_app.py +6 -73
streamlit_app.py CHANGED
@@ -2661,43 +2661,14 @@ def main():
2661
  displayCtx.fillText(`Rostros: ${lastBoxes.length}`, 20, 30);
2662
  } else if (video.readyState === video.HAVE_ENOUGH_DATA) {
2663
  // Si no hay cajas almacenadas pero el video está activo,
2664
- // dibujar un rectángulo predeterminado en el centro
2665
- const w = display.width;
2666
- const h = display.height;
2667
- const centerX = w / 2;
2668
- const centerY = h / 2;
2669
- const faceW = w * 0.4; // 40% del ancho
2670
- const faceH = h * 0.5; // 50% del alto
2671
-
2672
- const x1 = centerX - faceW / 2;
2673
- const y1 = centerY - faceH / 2;
2674
- const x2 = x1 + faceW;
2675
- const y2 = y1 + faceH;
2676
-
2677
- // Dibujar rectángulo predeterminado
2678
- displayCtx.strokeStyle = '#FFA500'; // Naranja
2679
- displayCtx.lineWidth = 6;
2680
- displayCtx.strokeRect(x1, y1, faceW, faceH);
2681
-
2682
- // Añadir un relleno semitransparente
2683
- displayCtx.fillStyle = 'rgba(255, 165, 0, 0.2)';
2684
- displayCtx.fillRect(x1, y1, faceW, faceH);
2685
-
2686
- // Añadir un fondo para el texto
2687
- displayCtx.fillStyle = 'rgba(0, 0, 0, 0.7)';
2688
- displayCtx.fillRect(x1, y1-25, 190, 25);
2689
-
2690
- // Dibujar etiqueta
2691
- displayCtx.fillStyle = '#FFA500';
2692
- displayCtx.font = 'bold 18px Arial';
2693
- displayCtx.fillText('Rostro predeterminado', x1+5, y1-5);
2694
 
2695
  // Mensaje de estado
2696
  displayCtx.fillStyle = 'rgba(0, 0, 0, 0.7)';
2697
- displayCtx.fillRect(10, 10, 300, 30);
2698
- displayCtx.fillStyle = '#FFA500';
2699
  displayCtx.font = 'bold 18px Arial';
2700
- displayCtx.fillText('Detección asistida activada', 20, 30);
2701
  }
2702
  }
2703
 
@@ -2768,35 +2739,13 @@ def main():
2768
  lastBoxes = [];
2769
  }
2770
  }
2771
-
2772
- // Dibuja un rectángulo de prueba siempre, para verificar que el canvas funciona
2773
- drawTestRect();
2774
  }
2775
- } else if (event.data && event.data.type === 'testRect') {
2776
- // Si solo recibimos una señal de prueba, dibujar el rectángulo
2777
- console.log('Recibido señal para dibujar rectángulo de prueba');
2778
- drawTestRect();
2779
  }
2780
  });
2781
 
2782
- // Dibujar un rectángulo de prueba para verificar que el canvas funciona
2783
- function drawTestRect() {
2784
- displayCtx.strokeStyle = '#FF0000'; // Rojo brillante
2785
- displayCtx.lineWidth = 5;
2786
- displayCtx.strokeRect(50, 50, 100, 100);
2787
- displayCtx.fillStyle = 'rgba(255, 0, 0, 0.3)'; // Relleno semitransparente
2788
- displayCtx.fillRect(50, 50, 100, 100);
2789
- displayCtx.fillStyle = '#FF0000';
2790
- displayCtx.font = 'bold 16px Arial';
2791
- displayCtx.fillText('TEST', 85, 100);
2792
- console.log('Rectángulo de prueba dibujado');
2793
- }
2794
-
2795
  // Arrancar todo
2796
  async function initCapture() {
2797
  await setupCamera();
2798
- // Dibujar rectángulo de prueba
2799
- setTimeout(drawTestRect, 1000);
2800
  // Empezar a capturar frames periódicamente
2801
  captureInterval = setInterval(captureFrame, captureDelay);
2802
  console.log(`Captura iniciada con intervalo de ${captureDelay}ms`);
@@ -2950,13 +2899,13 @@ def main():
2950
  force_display_js = """
2951
  <script>
2952
  (function() {
2953
- console.log("Forzando actualización del rectángulo de prueba");
2954
 
2955
  const noDetectionMessage = {
2956
  type: 'faceBoxes',
2957
  boxes: [],
2958
  timestamp: Date.now(),
2959
- forceDisplay: true
2960
  };
2961
 
2962
  // Enviar a todos los destinos posibles
@@ -2969,22 +2918,6 @@ def main():
2969
  try { frames[i].contentWindow.postMessage(noDetectionMessage, '*'); } catch(e) {}
2970
  }
2971
  } catch(e) {}
2972
-
2973
- // Enviar señal de prueba para verificar comunicación
2974
- const testMessage = {
2975
- type: 'testRect',
2976
- timestamp: Date.now()
2977
- };
2978
-
2979
- try { window.parent.postMessage(testMessage, '*'); } catch(e) {}
2980
- try { window.postMessage(testMessage, '*'); } catch(e) {}
2981
-
2982
- try {
2983
- const frames = document.getElementsByTagName('iframe');
2984
- for(let i = 0; i < frames.length; i++) {
2985
- try { frames[i].contentWindow.postMessage(testMessage, '*'); } catch(e) {}
2986
- }
2987
- } catch(e) {}
2988
  })();
2989
  </script>
2990
  """
 
2661
  displayCtx.fillText(`Rostros: ${lastBoxes.length}`, 20, 30);
2662
  } else if (video.readyState === video.HAVE_ENOUGH_DATA) {
2663
  // Si no hay cajas almacenadas pero el video está activo,
2664
+ // simplemente mostrar el mensaje "No se detectan rostros"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2665
 
2666
  // Mensaje de estado
2667
  displayCtx.fillStyle = 'rgba(0, 0, 0, 0.7)';
2668
+ displayCtx.fillRect(10, 10, 250, 30);
2669
+ displayCtx.fillStyle = '#FF9900';
2670
  displayCtx.font = 'bold 18px Arial';
2671
+ displayCtx.fillText('No se detectan rostros', 20, 30);
2672
  }
2673
  }
2674
 
 
2739
  lastBoxes = [];
2740
  }
2741
  }
 
 
 
2742
  }
 
 
 
 
2743
  }
2744
  });
2745
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2746
  // Arrancar todo
2747
  async function initCapture() {
2748
  await setupCamera();
 
 
2749
  // Empezar a capturar frames periódicamente
2750
  captureInterval = setInterval(captureFrame, captureDelay);
2751
  console.log(`Captura iniciada con intervalo de ${captureDelay}ms`);
 
2899
  force_display_js = """
2900
  <script>
2901
  (function() {
2902
+ console.log("Forzando actualización del display");
2903
 
2904
  const noDetectionMessage = {
2905
  type: 'faceBoxes',
2906
  boxes: [],
2907
  timestamp: Date.now(),
2908
+ forceDisplay: false
2909
  };
2910
 
2911
  // Enviar a todos los destinos posibles
 
2918
  try { frames[i].contentWindow.postMessage(noDetectionMessage, '*'); } catch(e) {}
2919
  }
2920
  } catch(e) {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2921
  })();
2922
  </script>
2923
  """