| id | area | perímetro | cx | cy | x | y | w | h | circularidad | solidez | vértices |
|---|
8.14.9 EP08_09 🟠 Gradiente de Iluminación y Umbralización Adaptativa
En esta variación, los objetos están inmersos en un fondo con iluminación no uniforme (gradiente suave de iluminación). La umbralización simple por valor único falla, lo que exige un preprocesamiento más robusto.
8.14.9.1 📋 Directrices de Implementación
- Entrada: imagen en niveles de gris \(H \times W\) con variación de fondo de \(20\) a \(180\).
- Preprocesamiento:
Aplicar Umbralización Adaptativa (ej.:
cv2.adaptiveThresholdcon ventana gaussiana de \(15 \times 15\) y constante \(C = 3\)) para aislar los objetos independientemente de la variación del fondo.cv2.adaptiveThreshold(img_gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, ksize, C) // 255ksizeyCse leen después de la imagen.Operación morfológica de Cierre (\(3 \times 3\)) para sellar posibles fallos en los contornos.
Medición y Clasificación: extraer las medidas.
Ordenación y Salida: ordenar por
(bbox[0], bbox[1])e imprimir la tabla incluyendo la columnaclass.- Para ordenar, usar
medidas.sort(key=lambda m: (m['bbox'][1], m['bbox'][0])), conmedidas = mm.measure(img, precision=0.02).
- Para ordenar, usar
8.14.9.2 📌 Ejemplos
| Entrada | Salida |
|---|---|
| 16 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 … k 20 |
id area perimeter cx cy x y w h circularity solidity vertices 1 9.0 12.0 10.0 5.0 8 3 5 5 0.79 1.000 4 2 28.3 18.8 25.0 12.0 22 9 7 7 1.00 1.000 3 |
%%writefile EP08_09.py
# Código PythonOverwriting EP08_09.py
TestSuite("EP08_09.py").run()✔️ EP08_09.cases ya existe en casos/
📋 3 caso(s) cargado(s) de casos/EP08_09.cases
🔍 Probando Python: EP08_09.py
⚠️ EP08_09.py: archivo vacío (menos de 3 líneas). Pruebas omitidas.