OpenCV: comparando imagens simples com pequena diferença
Eu tenho um monte de imagens "simples" e quero comparar se elas são semelhantes juntas. Eu os comparo uns aos outros usando a correspondência de modelos (cv::matchTemplate
) e os resultados são muito bons.
Agora quero afinar meu programa e enfrento um problema. Por exemplo, tenho duas imagens que parecem muito parecidas. Apenas as diferenças que eles têm é que outro tem uma linha mais grossa e a frente do item é diferente. Quando ambas as imagens são pequenas, uma diferença na espessura da linha faz grandes diferenças de resultado ao fazer a correspondência de modelos. Quando as espessuras das linhas são iguais e a única diferença é o dígito da frente, recebo um resultado de correspondência de modelo, algo como0.98
comCV_TM_CCORR_NORMED
quando jogo bem sucedido. Quando a espessura da linha é diferente, o resultado da correspondência é algo como 0,95.
Não consigo diminuir meu valor limite abaixo de 0,98 porque algumas outras imagens semelhantes têm a mesma espessura de linha.
Aqui estão imagens de exemplo:
Então, quais opções eu tenho?
Eu tentei:
dilate o original e modelocorroer também ambosmorphologyEx amboscalculando keypoints e comparando-osencontrando cantosMas nenhum grande sucesso ainda. Essas imagens são tão simples que a detecção de "boas características" é difícil?
Qualquer ajuda é muito bem vinda.
Obrigado!
EDITAR:
Aqui estão algumas outras imagens de exemplo. O que meu programa considera semelhante é colocado na mesma pasta zip.fecho eclair