Eu preciso encontrar os quadrados em uma imagem usando OpenCV (sem problemas no matlab ou qualquer outro, geralmente o que eu espero são algumas idéias).
Considere a imagem de teste abaixo:
Preciso encontrar com precisão os quadrados coloridos na imagem acima (não as faixas brancas longas).
O que eu fiz :
Eu apliquei o método comum (que vem com amostras OpenCV), ou seja, encontre contornos em todos os planos de cores, aproxime-o e verifique o número de elementos = 4. Funciona até certo ponto que, poucos quadrados são detectados, especialmente os escuros.
O próximo passo que fiz foi a previsão . isto é, este arranjo é fixo . Portanto, se algumas são obtidas, posso prever as restantes. Também funcionou em certa medida. Mas a precisão era muito ruim.
Mas sinto que a previsão não é um bom método aqui e nem sempre fornece respostas precisas, conforme fornecidas no primeiro passo.
O que eu preciso :
1) Existem outros métodos melhores para detectar esses quadrados com mais precisão? Ou vários métodos?
Um ponto importante é que, o tempo não é um problema aqui . O algoritmo pode ser lento, não importa. Mas a precisão é o principal critério.
Às vezes, as imagens podem ficar muito mais embaçadas.
E um dos principais problemas que enfrentei é que alguns quadrados têm cores quase iguais às do plano de fundo (verifique o primeiro e o segundo quadrados da coluna 3).
À procura de ideias, obrigado antecipadamente
ATUALIZAÇÃO:
Abaixo está o resultado exato máximo que obtive:
Obviamente, a imagem resultante é redimensionada um pouco.
ATUALIZAÇÃO 2:
Dei uma solução muito mais melhor na minha resposta abaixo: https://dsp.stackexchange.com/a/7526/818