To obszerny temat, zawierający odpowiedzi z 3 linii kodu na całe magazyny naukowe.
Przedstawię najpopularniejsze takie techniki i ich wyniki.
Porównanie histogramów
Jedna z najprostszych i najszybszych metod. Proponowane dziesiątki lat temu jako sposób na znalezienie podobieństw w obrazach. Chodzi o to, że las będzie miał dużo zieleni, a ludzka twarz dużo różu lub cokolwiek innego. Jeśli więc porównasz dwa zdjęcia z lasami, uzyskasz pewne podobieństwa między histogramami, ponieważ w obu jest dużo zieleni.
Wada: to jest zbyt uproszczone. Banan i plaża będą wyglądać tak samo, ponieważ obie są żółte.
Metoda OpenCV: compareHist ()
Dopasowywanie wzorców
Dobry przykład tutaj matchTemplate znajdujący dobre dopasowanie . Łączy szukany obraz z tym, w który jest przeszukiwany. Zwykle jest używany do znajdowania mniejszych części obrazu w większym.
Wady: zwraca dobre wyniki tylko z identycznymi obrazami, tym samym rozmiarem i orientacją.
Metoda OpenCV: matchTemplate ()
Dopasowanie funkcji
Uważany za jeden z najskuteczniejszych sposobów wyszukiwania obrazów. Z obrazu wyodrębnia się szereg funkcji w sposób gwarantujący, że te same cechy zostaną ponownie rozpoznane nawet po obróceniu, skalowaniu lub pochyleniu. Funkcje wyodrębnione w ten sposób można dopasować do innych zestawów funkcji obrazu. Uważa się, że inny obraz, który ma duży odsetek cech pasujących do pierwszego, przedstawia tę samą scenę.
Znalezienie homografii między dwoma zestawami punktów pozwoli Ci również znaleźć względną różnicę w kącie fotografowania między oryginalnymi obrazami lub stopniem nakładania się.
Istnieje wiele samouczków / próbek OpenCV na ten temat i fajny film tutaj . Dedykowany jest do niego cały moduł OpenCV (features2d).
Wady: może działać wolno. To nie jest doskonałe.
Na stronie z pytaniami i odpowiedziami OpenCV mówię o różnicy między deskryptorami cech, które są świetne przy porównywaniu całych obrazów i deskryptorów tekstur, które są używane do identyfikacji obiektów, takich jak ludzkie twarze lub samochody na obrazie.