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 cantos

Mas 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

questionAnswers(3)

yourAnswerToTheQuestion