OpenCV: comparando imágenes simples con poca diferencia

Tengo un montón de imágenes "simples" y quiero comparar si son similares entre sí. Los comparo entre sí utilizando la coincidencia de plantillas (cv::matchTemplate) y los resultados son bastante buenos.

Ahora quiero afinar mi programa y me enfrento a un problema. Por ejemplo tengo dos imágenes que se parecen mucho. La única diferencia que tienen es que otra tiene una línea más gruesa y el frente del dígito del elemento es diferente. Cuando ambas imágenes son pequeñas, una diferencia de píxel en el grosor de la línea produce grandes diferencias de resultados cuando se hace una comparación de plantillas. Cuando los grosores de línea son iguales y la única diferencia es el dígito anterior, obtengo el resultado de la coincidencia de la plantilla algo como0.98 conCV_TM_CCORR_NORMED cuando el partido tiene éxito. Cuando el grosor de la línea es diferente, el resultado coincidente es algo así como 0.95.

No puedo disminuir mi valor de umbral por debajo de 0.98 porque algunas otras imágenes similares tienen el mismo grosor de línea.

Aquí están las imágenes de ejemplo:

Entonces, ¿qué opciones tengo?

Yo he tratado:

dilatar el original y la plantillaerosionar también ambosmorfologíaex amboscalculando puntos clave y comparándolosencontrando rincones

Pero no hay mucho éxito todavía. ¿Son esas imágenes demasiado simples como para detectar "buenas características" es difícil?

Cualquier ayuda es muy bienvenida.

¡Gracias!

EDITAR:

Aquí hay algunas otras imágenes de ejemplo. Lo que mi programa considera similar se pone en la misma carpeta zip.cremallera

Respuestas a la pregunta(3)

Su respuesta a la pregunta