2015-05-15 12 views
6

Patrząc na Histogram Documentation istnieją 4 (5) różne metody porównania:Porównanie Histogram OpenCV Metody

  1. CV_COMP_CORRELKorelacja
  2. CV_COMP_CHISQRChi-Square
  3. CV_COMP_INTERSECTSkrzyżowanie
  4. CV_COMP_BHATTACHARYYABhattacharyya odległość
  5. CV_COMP_HELLINGERsynonim dlaCV_COMP_BHATTACHARYYA

Wszystkie dają różne wyjścia, które są odczytywane w różny sposób, jak to pokazano na Compare Histogram Documentation. Ale nie mogę znaleźć niczego, co wskazywałoby na efektywność każdej metody w porównaniu ze sobą. Z pewnością istnieją zalety i wady dla każdej metody, w przeciwnym razie, dlaczego mają wiele metod?

Nawet OpenCV 2 Computer Vision Application Programming Cookbook ma bardzo niewiele do powiedzenia na differnces:

Wezwanie do cv :: compareHist jest proste. Wystarczy wprowadzić dwa histogramy , a funkcja zwraca zmierzoną odległość. Określona metoda pomiaru, którą chcesz zastosować, jest określona przy użyciu flagi. W klasie ImageComparator używana jest metoda przecięcia (z flagą CV_COMP_INTERSECT). Ta metoda porównuje po prostu dla każdego pojemnika dwie wartości w każdym histogramie i utrzymuje wartość minimalną. Miary podobieństwa są po prostu sumą tych minimalnych wartości. W rezultacie dwa obrazy mające histogramy bez wspólnych kolorów uzyskałyby wartość przecięcia 0, a dwa identyczne histogramy: uzyskałyby wartość równą całkowitej liczbie pikseli.

Inne metody dostępne są chi-kwadrat (znacznik CV_COMP_CHISQR) który sumuje znormalizowane kwadratowy różnicy między pojemnikami, sposób korelacji (znacznik CV_COMP_CORREL) które jest oparte na znormalizowanej korelacji krzyżowej operator używany w przetwarzaniu sygnałów do pomiaru mierzy podobieństwo między dwoma sygnałami, a miara Bhattacharyya mierzy (flagę CV_COMP_BHATTACHARYYA) używaną w statystykach do oszacowania podobieństwa między dwoma rozkładami probabilistycznymi.

Musi być różnica między metodami, więc moje pytanie brzmi: czym one są? i w jakich okolicznościach działają najlepiej?

+1

dałbym wikipedia próba. To tak, jakby zapytać, czy lepiej zmierzyć dystans wzdłuż ulic lub jak leci wrona ... być może musisz zrozumieć, co chcesz zmierzyć. Ale może naprawdę jest jakiś rodzaj książki kucharskiej, "kiedy użyć tego, który metryczny dystans", więc powodzenia z pytaniem. – Micka

+0

Chcę tylko wskazać różnice między dostępnymi metodami. – MLMLTL

Odpowiedz

1

CV_COMP_INTERSECT jest szybki do obliczenia, ponieważ wystarczy minimalna wartość dla każdego pojemnika. Ale nie powie ci wiele o rozkładzie różnic.Inne metody próbują osiągnąć lepszą i bardziej ciągłą punktację jako dopasowanie, przy różnych założeniach dotyczących rozkładu pikseli.

można znaleźć formuły używane w różnych metod, w

http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_comparison/histogram_comparison.html

Niektóre odnośniki do bardziej szczegółowych informacji na temat algorytmów dopasowywania można znaleźć pod adresem:

http://siri.lmao.sk/fiit/DSO/Prednasky/7%20a%20Histogram%20based%20methods/7%20a%20Histogram%20based%20methods.pdf

+0

Twój pierwszy link był taki sam jak mój pierwszy link, ale drugi był interesujący. Powiedziawszy to, wciąż mówi tylko tyle, ile wszystkie inne linki, które znalazłem: punktację dla różnych metod robi się inaczej. – MLMLTL

+0

Matematycznie rzecz biorąc, znormalizowany histogram jest funkcją gęstości prawdopodobieństwa (PDF). Kiedy dopasowujemy dwa histogramy, w zasadzie widzimy, jak dwie dystrybucje pasują do siebie. Najlepszym sposobem, aby odpowiedzieć na twoje pytanie, jest przeczytanie podręczników na temat statystycznego rozpoznawania wzorców (Duda i Hart są całkiem dobre) lub publikacji takich jak http://citeseerx.ist.psu.edu/viewdoc/download?rep=rep1&type=pdf&doi= 10.1.1.154.8446. Nauczyłem się, ale zapomniałem o większości z tych rzeczy ;-(. – Totoro