zacząłem eksperymentować z c ++ i opencv, ponieważ chcę nauczyć się przetwarzania obrazu.
Teraz moim pierwszym ćwiczeniem jest stworzenie detektora skóry z calcHist i calcBackProject .
Ale nie rozumiem kilku rzeczy:
- interpretacja statystyczna wstecznego projektu i dlaczego nazywa się „wstecznym projektem”
- dość dobrze rozumiem, w jakim parametrze zakresów się znajduje
calcBackProject
. Ale naprawdę utknąłem z parametrem zakresów wcalcHist
funkcji. - Aby uzyskać większą precyzję wykrywania, myślę, że dobrą rzeczą może być użycie opcji backgrojection na większej liczbie poziomów: w każdym kanale rgb ans w każdym kanale hsv. Ale nie wiem, jak mogę połączyć różne wyniki
calcBackProject
oddzielnych kanałów rgb i hsv.
I myślę, że moje złe rozumienie jest spowodowane brakiem teorii na temat tego, co robię z tymi 2 metodami (patrz pierwszy punkt). Więc proszę wyjaśnij mnie zwykłym angielskim.
Odpowiedzi:
Zobacz Co to jest projekcja wsteczna w samouczkach openCV
Histogram obrazu mierzy rozkład koloru (i jasności) pikseli na obrazie.
Jeśli zrobisz zdjęcie i określisz interesujący Cię region, np. rękę i obliczyć histogram pikseli w tym obiekcie.
Następnie weź ten histogram i drugi obraz i zasadniczo odwróć proces - wybierasz piksele na drugim obrazie, które pasują do histogramu od pierwszego. Jest to proces odwrotny, który nadaje mu odwrotną projekcję.
Następnie przyjmuje się założenie, że obszary obrazu na drugim obrazie, które mają taki sam rozkład kolorów jak obiekt na pierwszym obrazie, są obrazem tego samego (lub podobnego) obiektu.
źródło