Necesito encontrar los cuadrados en una imagen usando OpenCV (no hay problema en matlab o cualquier otro, generalmente lo que espero son algunas ideas).
Considere la imagen de prueba a continuación:
Necesito encontrar esos cuadrados de colores en la imagen de arriba con precisión (no las tiras largas blancas).
Que he hecho :
Apliqué el método común (que viene con muestras OpenCV), es decir, encontrar contornos en todos los planos de color, aproximarlo y verificar el número de elementos = 4. Funciona hasta cierto punto que, se detectan pocos cuadrados, especialmente los oscuros.
El siguiente paso que hice fue la predicción . es decir, este arreglo es fijo . Entonces, si se obtienen algunos, puedo predecir los restantes. También funcionó hasta cierto punto. Pero la precisión fue muy mala.
Pero siento que la predicción no es un buen método aquí y no siempre proporciona respuestas precisas como las da el primer paso.
Lo que necesito :
1) ¿Hay algún otro método mejor para detectar estos cuadrados con mayor precisión? O múltiples métodos?
Un punto importante es que el tiempo no es un problema aquí . El algoritmo puede ser lento, no importa. Pero la precisión es el criterio principal.
A veces, las imágenes pueden ser mucho más borrosas.
Y uno de los principales problemas que enfrenté es que algunos cuadrados tienen un color casi similar al del fondo (verifique los primeros y segundos cuadrados de la columna 3).
Buscando ideas, gracias de antemano
ACTUALIZACIÓN
A continuación se muestra el resultado máximo exacto que obtuve:
Por supuesto, la imagen resultante cambia de tamaño un poco.
ACTUALIZACIÓN 2:
He dado una solución mucho mejor en mi respuesta a continuación: https://dsp.stackexchange.com/a/7526/818