Cześć, to będzie bardzo prosty artykuł, ale znajdziesz to bardzo pomocne To chodzi o Ekstrakcję tła z filmu wideo. Podajesz, że masz film z materiału wideo, może być coś jak ten ruch w Indiach i jesteś poproszony o znalezienie zbliżonego tła Lub coś podobnego. Pobieranie obiektu jest ważne w śledzeniu obiektów Jeśli masz już obraz nagiego tła, to jest proste Ale w wielu przypadkach nie masz takiego obrazu, więc będziesz musimy stworzyć To właśnie tam biegnie Średnia bieżąca. Pomyślałem o tym, gdy jeden facet zadał pytanie w funkcji SOF Link. Funkcja używana tutaj, aby znaleźć Średnia bieżąca jest na przykład, jeśli oglądamy film, ciągle karmimy każdą ramkę do tej funkcji, a funkcja wciąż znajdzie średnie wszystkich ramek podawanych do niej zgodnie z relacją poniżej. src to nic innego, jak nasz obraz źródłowy Może to być szarość lub kolorowy obraz, a 8-bitowy lub 32-bitowy floating point. dst jest obrazem wyjściowym lub akumulatorowym z tymi samymi kanałami, obrazu źródłowego i jest to 32-bitowy lub 64-bitowy punkt zmiennoprzecinkowy. Również należy najpierw zadeklarować wartość, która zostanie przyjęta jako wartość początkowa. alpha to waga obrazu wejściowego Zgodnie z Dokumentami alfa reguluje szybkość aktualizacji jak szybko akumulator zapomina o wcześniejszych zdjęciach W prostych słowach, jeśli alfa jest wyższą wartością, średni obraz próbuje złapać nawet bardzo szybkie i krótkie zmiany danych Jeśli jest niższa wartość, średnia staje się osłabiona i nie rozważa szybkiego zmiany w obrazach wejściowych będę wyjaśnić to trochę za pomocą zdjęć na końcu artykułu. W powyższym kodzie ustawiłem dwa średnie, jeden o wyższej wartości alfa i drugi o niższej wartości alfa, dzięki czemu można zrozumieć efekt alfa. Początkowo obie są ustawione na pierwszą ramkę przechwytywania I w pętli dostają updated. You widać jakieś wyniki w łączu SOF już pod warunkiem dostarczyć te wyniki tutaj, możesz sprawdzić kod i wartość alpha tam. I used my webcam i zapisane oryginalnej ramy i przebiegać średnio w konkretna chwila. Ta ramka pochodzi z typowego ruchu wideo zrobionego przez stacjonarną kamerę Jak widać, samochód jedzie na drogę, a osoba próbuje przekroczyć drogę w określonym momencie czasu. bieżąca średnia w tym czasie Nie ma osoby i samochodu na tym zdjęciu Właściwie to jest tam, masz bliski wygląd, wtedy zobaczysz, a osoba jest bardziej jasna niż samochód, ponieważ samochód porusza się bardzo szybko i na obrazie, to nie ma dużo wpływu na przeciętnie, ale człowiek jest tam na długi t ime, ponieważ on jest powolny i przemieszcza się po drodze. Teraz musimy zobaczyć efekt alfa na tych obrazach. Poprawić obraz. Objaśnienie poniżej należy do książki Computer Vision Algorithms and Applications przez Richard Szeliski i LearningOpenCV. Smoothing nazywane również rozmycie to prosta i często używana operacja przetwarzania obrazu. Jest wiele przyczyn wygładzania W tym samouczku skoncentrujemy się na wygładzaniu, aby zmniejszyć hałas, inne zastosowania będą widoczne w następujących samouczkach. Aby wykonać operację wygładzania zastosujemy filtr do naszego obrazu Najczęstszym typem filtrów jest liniowy, w którym wartość piksela wyjściowego jest określana jako ważona suma wartości pikseli wejściowych, tj. jądro, które jest niczym więcej niż współczynnikami filtru. Pomaga to wizualizuj filtr jako okno współczynników przesuwających się po obrazie. Istnieje wiele rodzajów filtrów, o których tutaj wspomnimy o najczęściej używanym. Normalizowanym filtrze pudełkowym. Filtr ten jest najprostszy ze wszystkich t piksel jest średnią sąsiadów jądra, które wszystkie są przyczyną równej wagi. Jestem jest poniżej. Guussian Filter. Probably najbardziej użytecznym filtrem, choć nie najszybszym filtrem Gaussa jest wykonywany przez przekonanie każdego punktu w tablicy wejściowej z jądrem Gaussa a następnie podsumować je wszystkie, aby wyprodukować tablicę wyjściową. Jeśli obraz jest wyraźniejszy, pamiętaj o tym, jak wygląda ziarna 1D Gaussa. Zauważ, że obraz jest 1D, można zauważyć, że piksel znajdujący się w środku miałby największy ciężar ciężar sąsiadów zmniejsza się wraz ze wzrostem odległości przestrzennej między nimi a środkowym pikselem. Pamiętaj, że 2D Gaussian może być reprezentowany jako. gdzie jest średnią pik i reprezentuje wariancję na każdą z zmiennych. Filtr Median przechodzić przez każdy element sygnału w tym przypadku obraz i zastąpić każdy piksel środkiem sąsiadujących pikseli zlokalizowanych w kwadratowej okolicy wokół ocenianego piksela. Filtr brzegowy. , wyjaśniono niektóre filtry, których głównym celem jest wygładzenie obrazu wejściowego Jednak czasami filtry nie tylko powodują hałas, ale również wygładzają krawędzie Aby uniknąć tego w pewnym stopniu, możemy użyć dwustronnego filtru. analogicznie jak filtr Gaussa, filtr dwustronny również uwzględnia sąsiednie piksele z odważkami przypisanymi do każdego z nich Wagi te składają się z dwóch elementów, z których pierwszy jest tego samego ciężaru stosowanego przez filtr Gaussa Drugi element uwzględnia różnicę w intensywności między sąsiadującymi pikselami i ocenianym. Aby uzyskać bardziej szczegółowe wyjaśnienie, możesz sprawdzić ten link. Który program to. Pobiera obraz. Applies 4 różne rodzaje filtrów wyjaśnione w teorii i pokazują filtrowane zdjęcia sekwencyjnie. to jest osiągalne z pobudzenia per. But naprawdę chciałbym uniknąć przyśpieszenia mam googled i nie znalazłem żadnych odpowiednich lub czytelnych przykładów. Zazwyczaj chcę śledzić ruchomej avera ge ciągłego strumienia strumienia liczb zmiennoprzecinkowych przy użyciu najnowszych 1000 numerów jako próbki danych. Jaki jest najłatwiejszy sposób osiągnięcia tego. Eksperymentowałem z użyciem okrągłej tablicy, wykładniczej średniej ruchomej i bardziej prostej średniej ruchomej oraz że wyniki okrągłej tablicy odpowiadały moim potrzebom najlepiej. pozakładane 12 czerwca 12 w 4 38.Jeśli Twoje potrzeby są proste, możesz spróbować użyć wykładniczej średniej ruchomej. Wystarczy, że zmienisz akumulator i jako swój kod spogląda na każdą próbkę, kod aktualizuje akumulator o nową wartość Odbiera się stały alfa, który wynosi od 0 do 1 i oblicza to. Wystarczy, że znajdziesz wartość alfa, gdzie efekt danej próbki trwa tylko około 1000 próbek. Hmm, nie jestem pewien, czy jest to dla Ciebie odpowiednie, teraz, gdy już to umieściłem. Problem polega na tym, że 1000 to dość długie okno dla wykładniczej średniej ruchomej. Nie wiem, czy istnieje alfa, która rozprzestrzeniła się średnia w ciągu ostatnich 1000 numerów, w bez spadku w obliczeniach zmiennoprzecinkowych Jeśli chcesz mniejszej średniej, np. 30 numerów, to jest to bardzo prosty i szybki sposób to zrobić. jak 12 czerwca 12 w 4 44. 1 na Twoim stanowisku Średnia wykładnicza zezwalaj na zmianę zmiennej alfa Tak więc pozwala to na obliczanie średnich czasów bazowych, np. bajtów na sekundę Jeśli czas od ostatniej aktualizacji akumulatora przekracza 1 sekundę, możesz pozwolić alpha być równe 1 0 W przeciwnym razie możesz pozwolić usłudze alpha jako usec ostatnia aktualizacja 1000000 jxh 12 czerwca 12 at 6 21. Zazwyczaj chcę śledzić średnią ruchową bieżącego strumienia strumienia liczb zmiennoprzecinkowych przy użyciu najnowszych 1000 numerów jako próbki danych. Należy zauważyć, że poniżej uaktualnia całkowite jako elementy jako dodatek zastępczy, unikając kosztownych przejazdów ON w celu obliczenia sumy - potrzebnej na średnią - na żądanie. Całkowita wartość różni się parametrem od T do wsparcia np. długotrwałą długą, gdy wynosi 1000 długich s, int dla char s lub podwójny do całkowitego pływaka. Jest to nieco błędne w tym numsamples mogłyby przechodzić przez INTMAX - jeśli zależy Ci na długie długie unsigned lub użyć dodatkowych danych bool członka do nagrywania, gdy pojemnik jest po raz pierwszy wypełnione, podczas cyklicznych numsamples wokół tablicy najlepiej, a następnie zmienić nazwę coś nieszkodliwe like pos. answered Jun 12 12 na 5 19.one zakłada, że próbka operatora pustego T jest faktycznie nieważnym operatorem T próbka oPless 8 czerwca 14 w 11 52. oPheli ahhh dobrze spotted faktycznie miałem na to być nieważne operatora T próbki, ale oczywiście można użyć dowolnego notatkę Lubię Naprawę, dzięki Tony D Jun 8 14 w 14 27.
No comments:
Post a Comment