OpenCV: porównywanie prostych obrazów z małą różnicą

Mam kilka „prostych” obrazów i chcę je porównać, jeśli są do siebie podobne. Porównuję je do siebie za pomocą dopasowania szablonu (cv::matchTemplate) a wyniki są całkiem dobre.

Teraz chcę dopracować mój program i napotykam problem. Na przykład mam dwa obrazy, które wyglądają bardzo podobnie. Jedyną różnicą jest to, że inna ma grubszą linię, a przednia cyfra elementu jest inna. Gdy oba obrazy są małe, różnica w grubości linii jednego piksela powoduje duże różnice wyników podczas dopasowywania szablonu. Gdy grubość linii jest taka sama, a jedyną różnicą jest cyfra przednia, otrzymuję wynik dopasowania szablonu podobny do0.98 zCV_TM_CCORR_NORMED gdy mecz się uda. Gdy grubość linii jest różna, wynik dopasowania wynosi około 0,95.

Nie mogę zmniejszyć mojej wartości progowej poniżej 0.98, ponieważ niektóre podobne obrazy mają taką samą grubość linii.

Oto przykładowe obrazy:

Więc jakie mam opcje?

Próbowałem:

rozszerz oryginał i szabloneroduje również obamorphologyEx obaobliczanie punktów kluczowych i ich porównywanieznajdowanie narożników

Ale nie ma jeszcze dużego sukcesu. Czy te obrazy są zbyt proste, aby wykryć „dobre cechy”?

Każda pomoc jest bardzo dobra.

Dziękuję Ci!

EDYTOWAĆ:

Oto kilka innych przykładowych obrazów. Co mój program uważa za podobne, są umieszczane w tym samym folderze zip.zamek błyskawiczny

questionAnswers(3)

yourAnswerToTheQuestion