Produkty Cellkraft8217s w obszarze biznesowym Wilgotne i parowe cele laboratoriów i przemysłu. Jakość i precyzja są zapewnione, dzięki czemu produkty mogą być wykorzystywane do wysoce jakościowych eksperymentów w laboratoriach, a także do ciągłego stosowania w zastosowaniach przemysłowych. Produkty do nawilżania i precyzyjnego parowania oparte są na dogłębnym zrozumieniu chemii fizycznej i zastosowaniu nowych technologii. Rezultatem są produkty o wydajności, które otwierają nowe możliwości dla badań i przemysłu. Witamy, aby dowiedzieć się więcej o naszych produktach. Zapraszamy również do kontaktu z nami w celu omówienia potrzeby precyzyjnego nawilżania lub parowania. Jeśli szukasz Cellkraft w obszarze biznesowym Ogniwa paliwowe, przejdź do: fuelcells. cellkraft. seFiltrowanie obrazu można podzielić na dwie grupy w zależności od efektów: Filtry dolnoprzepustowe (wygładzanie) Filtrowanie dolnoprzepustowe (zwane również wygładzaniem) jest stosowane w celu usunięcia dużych zakłóceń szum częstotliwości z obrazu cyfrowego. Filtry dolnoprzepustowe zwykle wykorzystują ruchomy operator okienny, który wpływa na jeden piksel obrazu na raz, zmieniając jego wartość za pomocą funkcji lokalnego regionu (okna) pikseli. Operator przesuwa się po obrazie, aby wpłynąć na wszystkie piksele obrazu. Filtry górnoprzepustowe (Wykrywanie krawędzi, Wyostrzanie) Filtr górnoprzepustowy może zostać użyty w celu zwiększenia ostrości obrazu. Filtry te podkreślają drobne szczegóły na obrazie - przeciwieństwo filtra dolnoprzepustowego. Filtrowanie górnoprzepustowe działa w taki sam sposób jak filtrowanie dolnoprzepustowe, po prostu używa innego jądra splotu. Podczas filtrowania obrazu na każdy piksel mają wpływ sąsiedzi, a efektem netto filtrowania jest przenoszenie informacji wokół obrazu. W tym rozdziale, dobrze użyj tego obrazu: bogotobogo wyszukiwanie strony: wyszukiwanie strony bogotobogo: średnie filtrowanie jest łatwe do wdrożenia. Jest używany jako metoda wygładzania obrazów, zmniejszając stopień zmienności intensywności między jednym pikselem a następnym, redukując szum w obrazach. Idea średniego filtrowania polega po prostu na zamianie każdej wartości piksela na obrazie na średnią (średnią) wartość jego sąsiadów, w tym samego siebie. Powoduje to wyeliminowanie wartości pikseli, które są niereprezentatywne dla ich otoczenia. Średnie filtrowanie jest zwykle uważane za filtr splotu. Podobnie jak inne nawinięcia, opiera się na jądrze, które reprezentuje kształt i rozmiar okolicy, z której mają być pobrane próbki podczas obliczania średniej. Często używa się jądra kwadratowego 3 razy 3, jak pokazano poniżej: Mf jest średnim filtrem: Filtr2 () jest zdefiniowany jako: Y filtr2 (h, X) filtruje dane w X z dwuwymiarowym filtrem FIR w macierz h. Oblicza wynik, Y, stosując dwuwymiarową korelację, i zwraca centralną część korelacji, która ma taki sam rozmiar jak X. Zwraca część Y określoną przez parametr kształtu. shape to ciąg o jednej z następujących wartości: full. Zwraca pełną dwuwymiarową korelację. W tym przypadku Y jest większe niż X. (domyślnie) Zwraca centralną część korelacji. W tym przypadku Y ma taki sam rozmiar jak X. jest prawidłowe. Zwraca tylko te części korelacji, które są obliczane bez krawędzi o zerowych brzegach. W tym przypadku Y jest mniejsze niż X. Teraz chcemy zastosować jądro zdefiniowane w poprzedniej sekcji, używając filter2 (): Widzimy, że filtrowany obraz (po prawej) jest nieco rozmazany w porównaniu do pierwotnego wejścia (po lewej) . Jak wspomniano wcześniej, filtr dolnoprzepustowy może być stosowany do odszumiania. Pozwala przetestować to. Po pierwsze, aby wprowadzać trochę brudu, rozpylamy trochę pieprzu i soli na obraz, a następnie stosujemy filtr średni: ma pewien wpływ na hałas soli i pieprzu, ale nie za wiele. Po prostu ich zamazano. Jak o wypróbowaniu wbudowanego w Matlabsa filtra medianowego bogotobogo search: bogotobogo site search: Median filter - medfilt2 () Oto skrypt: O wiele lepszy. W przeciwieństwie do poprzedniego filtra, który używa właśnie wartości średniej, tym razem użyliśmy mediany. Filtrowanie medianowe jest operacją nieliniową, często używaną w przetwarzaniu obrazu, w celu zmniejszenia hałasu soli i pieprzu. Zauważ też, że medfilt2 () jest filtrem 2-D, więc działa tylko w przypadku obrazu w skali szarości. Aby usunąć szum dla obrazu RGB, przejdź do końca tego rozdziału: Usuwanie szumów w obrazie RGB. Matlab udostępnia metodę tworzenia predefiniowanego filtra 2D. Jego fspecial (): h fspecial (type) tworzy dwuwymiarowy filtr h określonego typu. Zwraca h jako jądro korelacji, które jest odpowiednią formą do użycia z imfilter (). Typ jest ciągiem mającym jedną z następujących wartości: Obraz Matlab i przetwarzanie wideo OpenCV 3 - przetwarzanie obrazu wideo Przetwarzanie obrazu i wideo OpenCV 3 z analizą PythonMotion i śledzeniem obiektu calcOpticalFlowPyrLK Oblicza przepływ optyczny dla rzadkiego zestawu cech za pomocą iteracyjnego Lucas-Kanade metoda z piramidami. C: void calcOpticalFlowPyrLK (InputArray prevImg. InputArray nextImg. InputArray prevPts. InputOutputArray nextPts. OutputArray status. OutputArray err. Rozmiar winSize Rozmiar (21,21), int maxLevel 3, TermCriteria criteria TermCriteria (TermCriteria :: COUNTTermCriteria :: EPS, 30, 0.01), int flags 0, double minEigThreshold 1e-4) Python: cv2. calcOpticalFlowPyrLK (prevImg, nextImg, prevPts. nextPts. status. err. winSize. maxLevel. criteria. flags. minEigThreshold) rarr nextPts, status, err C: void cvCalcOpticalFlowPyrLK (const CvArr prev. const CvArr curr. CvArr prevpyr. CvArr currpyr. const CvPoint2D32f prevfeatures. CvPoint2D32f currfeatures, int count, CvSize winsize, int level, char status, float trackerror, CvTermCriteria, kryteria, int flags) Python: cv. CalcOpticalFlowPyrLK (prev, curr, prevPyr, currPyr, prevFeatures, winSize, level, criteria, flags, guesssesNone) - gt (currFeatures, status, trackerror) prevImg 8211 pierwszy 8-bitowy obraz wejściowy lub piramida skonstruowana przez buildOpticalFlowPyramid (). nextImg 8211 drugi obraz wejściowy lub piramida o tym samym rozmiarze i tym samym typie co prevImg. prevPts 8211 wektor punktów 2D, dla których trzeba znaleźć współrzędne punktu, musi być liczbami zmiennoprzecinkowymi o pojedynczej precyzji. NextPts 8211 wektor wyjściowy punktów 2D (z jednoznacznymi zmiennoprzecinkowymi współrzędnymi zmiennoprzecinkowymi) zawierający obliczone nowe pozycje elementów wejściowych na drugim obrazie po przekazaniu flagi OPTFLOWUSEINITFLOW, wektor musi mieć taki sam rozmiar, jak na wejściu. wektor stanu wyjścia 8211 (niepodpisanych znaków) każdy element wektora jest ustawiony na 1, jeśli znaleziono przepływ dla odpowiednich elementów, w przeciwnym razie jest ustawiony na 0. błąd 8211 wektor wyjściowy błędów każdy element wektora jest ustawione na błąd dla odpowiedniej funkcji, typ pomiaru błędu można ustawić w parametrze flags, jeśli nie znaleziono przepływu, wtedy błąd nie jest zdefiniowany (użyj parametru statusu, aby znaleźć takie przypadki). winSize 8211 rozmiar okna wyszukiwania na każdym poziomie piramidy. maxLevel 8211 0 poziom piramidy na poziomie 0, jeśli jest ustawiony na 0, piramidy nie są używane (pojedynczy poziom), jeśli ustawione na 1, używane są dwa poziomy, i tak dalej, jeśli piramidy są przekazywane do wejścia, wtedy algorytm użyje tyle poziomów, ile piramidy mają nie więcej niż maxLevel. Parametr kryterialny 8211, określający kryteria zakończenia iteracyjnego algorytmu wyszukiwania (po podanej maksymalnej liczbie iteracji criteria. maxCount lub gdy okno wyszukiwania przesuwa się o mniej niż kryteria values. epsilon. flagi 8211 OPTFLOWUSEINITIALFLOW używa wstępnych oszacowań, przechowywanych w następnych punktach, jeśli flaga nie jest ustawione, następnie prevPts jest kopiowane do nextPts i jest uważane za wstępne oszacowanie. OPTFLOWLKGETMINEIGENVALS używa minimalnych wartości własnych jako miary błędu (patrz: minimalny opis progu), jeśli flaga nie jest ustawiona, następnie L1 odległość między łatami wokół oryginału i przesuniętego punktu , podzielona przez liczbę pikseli w oknie, jest używana jako miara błędu MinEigThreshold 8211 algorytm oblicza minimalną wartość własną 2x2 normalnej macierzy równań przepływu optycznego (ta macierz jest nazywana macierzą gradientu przestrzennego w Bouguet00), podzieloną przez liczba pikseli w oknie, jeśli ta wartość jest mniejsza niż minEigThreshold., wówczas odpowiednia funkcja jest odfiltrowywana, a jej przepływ jest nie przetworzone, więc pozwala usunąć złe punkty i zwiększyć wydajność. Funkcja implementuje rzadką, iteracyjną wersję przepływu optycznego Lucas-Kanade w piramidach. Zobacz Bouguet00. Funkcja jest zsynchronizowana z biblioteką TBB. Przykład użycia algorytmu przepływu optycznego Lucas-Kanade można znaleźć w opencvsourcecodesamplescpplkdemo. cpp (Python) Przykład użycia algorytmu przepływu optycznego Lucas-Kanade można znaleźć na opencvsourcecodesamplespython2lktrack. py (Python) Przykład użycia trackera Lucas-Kanade do homografii Dopasowanie można znaleźć na opencvsourcecodesamplespython2lkhomography. py buildOpticalFlowPyramid Konstruuje piramidę obrazu, którą można przekazać do calcOpticalFlowPyrLK (). C: int buildOpticalFlowPyramid (InputArray img. OutputArrayOfArrays piramida. Rozmiar winSize. Int maxLevel. Bool withDerivatives true, int pyrBorder BORDERREFLECT101, int derivBorder BORDERCONSTANT, bool tryReuseInputImage true) Python: cv2. buildOpticalFlowPyramid (img, winSize, maxLevel. pyramid, withDivivatives, pyrBorder, derivBord, tryReuseInputImage), rarr retval, pyramid img 8211 8-bitowy obraz wejściowy. piramida piramidy wyjściowej 8211. winSize 8211 rozmiar okna algorytmu przepływu optycznego. Musi być nie mniejszy niż argument winSize z calcOpticalFlowPyrLK (). Konieczne jest obliczenie wymaganego wypełnienia dla poziomów piramidy. maxLevel 8211 0 najwyższy poziom piramidy na poziomie 0. withDivivatives 8211 zestaw do wstępnego obliczenia gradientów dla każdego poziomu piramidy. Jeśli piramida zostanie zbudowana bez gradientów, wówczas calcOpticalFlowPyrLK () obliczy ją wewnętrznie. pyrBorder 8211 tryb graniczny dla warstw piramid. derivBorder 8211 tryb graniczny dla gradientów. tryReuseInputImage 8211 umieść ROI obrazu wejściowego w piramidzie, jeśli to możliwe. Możesz przekazać wartość false, aby wymusić kopiowanie danych. liczba poziomów w skonstruowanej piramidzie. Może być mniejszy niż maxLevel. calcOpticalFlowFarneback Oblicza gęstą wiązkę optyczną za pomocą algorytmu Gunnara Farneback8217s. C: void calcOpticalFlowFarneback (InputArray prev. InputArray next, InputOutputArray flow, double pyrscale, int levels, int winsize, int iterations, int polyn, double polysigma, int flags) C: void cvCalcOpticalFlowFarneback (const CvArr prev. Const CvArr next, CvArr flow Podwójne pirscale, poziomy int, int winsize, int iterations, int polyn, double polysigma, int flags) Python: cv2. calcOpticalFlowFarneback (prev, next, pyrscale, levels, winsize, iterations, polyn, polysigma, flags. flow) rarr flow prev 8211 pierwszy 8-bitowy jednokanałowy obraz wejściowy. następny 8211 drugi obraz wejściowy o tym samym rozmiarze i tym samym typie co prev. flow flow 8211, który ma taki sam rozmiar jak prev i typ CV32FC2. parametr pyrscale 8211, określający skalę obrazu (lt1) do budowania piramid dla każdego obrazu pyrscale0,5 oznacza klasyczną piramidę, gdzie każda następna warstwa jest dwa razy mniejsza od poprzedniej. poziomy 8211 liczba warstw piramidowych, w tym początkowe poziomy obrazów1, oznacza, że nie są tworzone żadne dodatkowe warstwy i używane są tylko oryginalne obrazy. winsize 8211 uśrednianie rozmiaru okna większe wartości zwiększają odporność algorytmu na szum obrazu i dają większe szanse na szybkie wykrycie ruchu, ale powodują bardziej zamazane pole ruchu. iteracje 8211 liczba iteracji, którą algorytm wykonuje na każdym poziomie piramidy. Rozmiar polin 8211 sąsiedztwa piksela używany do znajdowania wielomianowego rozszerzenia w każdym większym pikselu oznacza, że obraz będzie przybliżony za pomocą gładszych powierzchni, dając bardziej stabilny algorytm i bardziej rozmyte pole ruchu, zazwyczaj polyn 5 lub 7. Polisygmatyczne odchylenie standardowe Gaussian używany do wygładzania pochodnych wykorzystywanych jako podstawa do wielomianowej ekspansji dla polyn5. możesz ustawić polysigma1.1. dla polyn7. dobrą wartością byłaby polisigma1.5. flagi 8211 flagi operacji, które mogą być kombinacją następujących elementów: OPTFLOWUSEINIT FLOW używa przepływu wejściowego jako wstępnego przybliżenia przepływu. OPTFLOWFARNEBACKGAUSSIAN wykorzystuje filtr Gaussa zamiast filtra skrzynkowego o tym samym rozmiarze do estymacji przepływu optycznego, zazwyczaj opcja ta zapewnia dokładniejszy przepływ niż z filtrem skrzynkowym, zwykle kosztem niższej prędkości, wygrywa dla okna Gaussa powinna być ustawiona na większa wartość, aby osiągnąć ten sam poziom solidności. Funkcja odnajduje przepływ optyczny dla każdego piksela prev za pomocą algorytmu Farneback2003, tak że przykład z wykorzystaniem algorytmu przepływu optycznego opisanego przez Gunnara Farnebacka można znaleźć na opencvsourcecodesamplescppfback. cpp (Python) Przykład z wykorzystaniem algorytmu przepływu optycznego opisanego przez Gunnara Farnebacka może być znaleziono na opencvsourcecodesamplespython2optflow. py estimateRigidTransform Oblicza optymalną transformację afiniczną między dwoma zestawami punktów 2D. C: Mat estimateRigidTransform (InputArray src. InputArray dst. Bool fullAffine) Python: cv2. estimateRigidTransform (src, dst, fullAffine) rarr retval src 8211 Pierwszy wejściowy zbiór punktów 2D zapisany w std :: vector lub Mat. lub obraz przechowywany w Mat. dst 8211 Drugi zestaw danych 2D tego samego rozmiaru i tego samego typu co A. lub inny obraz. fullAffine 8211 Jeśli jest to prawda, funkcja odnajduje optymalną transformację afiniczną bez żadnych dodatkowych ograniczeń (6 stopni swobody). W przeciwnym razie, klasa transformacji do wyboru jest ograniczona do kombinacji translacji, rotacji i jednolitego skalowania (5 stopni swobody). Funkcja znajduje optymalną transformację afiniczną Ab (macierz zmiennoprzecinkowa 2 x 3), która jest najlepiej zbliżona do transformacji afinicznej między: Zestawami dwu punktowymi Dwa obrazy rastrowe. W takim przypadku funkcja najpierw znajdzie niektóre funkcje w obrazie src i znajdzie odpowiednie funkcje w obrazie dst. Następnie problem zostaje zredukowany do pierwszego przypadku. W przypadku zestawów punktowych problem jest sformułowany w następujący sposób: należy znaleźć macierz 2x2 A i 2x1 wektor b, tak aby: gdzie srci i dsti były i-tym punktem w src i dst. Odpowiednio, fastAtan2 () i faza () są używane tak, że obliczony kąt jest mierzony w stopniach i obejmuje pełny zakres 0..360. Maska jest również wypełniona, aby wskazać piksele, w których kąt obliczeniowy jest prawidłowy. (Python) Przykład wykonania techniki szablonów ruchu można znaleźć na stronie opencvsourcecodesamplespython2motempl. py calcGlobalOrientation Oblicza globalną orientację ruchu w wybranym regionie. C: double calcGlobalOrientation (orientacja InputArray, maska InputArray, InputArray, podwójny czas) Python: cv2. calcGlobalOrientation (orientacja, maska, mhi, znacznik czasu, czas trwania) rarr retval C: podwójna cvCalcGlobalOrientation (stała orientacja CvArr stała maska CvArr stała CvArr mhi podwójna sygnatura czasowa podwójny czas trwania) Python: cv. CalcGlobalOrientation (orientacja, maska, mhi, znacznik czasu, czas trwania) orientacja pływaka rarr 8211 Obraz orientacji gradientu ruchu obliczony za pomocą funkcji calcMotionGradient (). maska 8211 Obraz maski. Może to być połączenie poprawnej maski gradientu, obliczanej również przez calcMotionGradient (). i maskę regionu, którego kierunek musi zostać obliczony. mhi 8211 Obraz historii ruchu wyliczony przez updateMotionHistory (). timestamp 8211 Timestamp przekazany do updateMotionHistory (). czas trwania 8211 Maksymalny czas trwania ścieżki ruchu w milisekundach, przekazywany do aktualizacjiMotionHistory (). Funkcja oblicza średni kierunek ruchu w wybranym regionie i zwraca kąt między 0 stopni a 360 stopni. Średni kierunek jest obliczany na podstawie ważonego histogramu orientacji, gdzie ostatni ruch ma większą wagę, a ruch występujący w przeszłości ma mniejszą wagę, jak zapisano w mhi. segmentMotion Dzieli historię ruchu na kilka części odpowiadających niezależnym ruchom (na przykład lewa ręka, prawa ręka). C: void segmentMotion (InputArray mhi, OutputArray segmask, vectorltRectgtamp, boundingRects, double timestamp, double segThresh) boundingRects, podwójny znacznik czasu, double segThresh) titlePermalink do tej definicji Python: cv2. segmentMotion (mhi, znacznik czasu, segThresh, segmask) rarr segmask, boundingRects C: CvSeq cvSegmentMotion (const CvArr mhi CvArr segmask, CvMemStorage storage, double timestamp, double segthresh) Python: cv. SegmentMotion (mhi, segmask, storage, timestamp, segthresh) rarr boundingRects mhi 8211 Obraz historii ruchu. segmask 8211 Obraz, w którym znajduje się znaleziona maska, jednokanałowy, 32-bitowy zmiennoprzecinkowy. boundingRects 8211 Wektor zawierający zwroty z ROI elementów związanych z ruchem. timestamp 8211 Aktualny czas w milisekundach lub innych jednostkach. segThresh 8211 Próg segmentacji zalecany jako równy odstępowi między historią ruchu 8220kroków 8221 lub wyższym. Funkcja odnajduje wszystkie segmenty ruchu i zaznacza je w masie segmentowej z indywidualnymi wartościami (1,2.). Oblicza również wektor z ROI elementów związanych z ruchem. Następnie kierunek ruchu dla każdego komponentu można obliczyć za pomocą metody calcGlobalOrientation (), używając wyodrębnionej maski danego składnika. Znajduje centrum, rozmiar i orientację obiektu. C: RotatedRect CamShift (InputArray probImage, okno Rectamp, kryteria TermCriteria) Python: cv2. CamShift (probImage, window, criteria) retarracja rarr, okno C: int cvCamShift (const CvArr probimage, okno CvRect, kryteria CvTermCriteria, CvConnectedComp comp. CvBox2D box NULL) Python: cv. CamShift (probimage, okno, kryteria) - gt (int, comp, box) Czasami obraz w tle może być bardzo rozmazany, ponieważ zawiera średnie statystyki tła. BackgroundSubtractorMOG class BackgroundSubtractorMOG. publiczny BackgroundSubtractor Algorytm segmentacji oparty na metodzie Gaussian BackgroundForeground. Klasa implementuje algorytm opisany w P. KadewTraKuPong i R. Bowden, Ulepszony adaptacyjny model miksu tła do śledzenia w czasie rzeczywistym z wykrywaniem cienia. Proc. 2 Europejskie warsztaty na temat zaawansowanych systemów nadzoru wideo, 2001: personal. ee. surrey. ac. ukPersonalR. Bowdenpublicationsavbs01avbs01.pdf BackgroundSubtractorMOG :: BackgroundSubtractorMOG C: BackgroundSubtractorMOG. BackgroundSubtractorMOG () C: BackgroundSubtractorMOG. BackgroundSubtractorMOG (int history, int nmixtures, double backgroundRatio, double noiseSigma 0) Python: cv2. BackgroundSubtractorMOG (history, nmxtures, backgroundRatio. NoiseSigma) rarr ltBackgroundSubtractorMOG objectgt history 8211 Długość historii. nmxtures 8211 Liczba mieszanek Gaussa. backgroundRatio 8211 Przełożenie tła. noiseSigma 8211 Hałas. Domyślny konstruktor ustawia wszystkie parametry na wartości domyślne. BackgroundSubtractorMOG :: operator () Aktualizuje model tła i zwraca maskę pierwszego planu C: void BackgroundSubtractorMOG. operator () (obraz InputArray, OutputArray fgmask, double learningRate 0) BackgroundSubtractorMOG2 Algorytm segmentacji oparty na bazie Gaussian BackgroundForeground Algorithm. klasa BackgroundSubtractorMOG2. public BackgroundSubtractor Oto ważni członkowie klasy, którzy kontrolują algorytm, który można ustawić po zbudowaniu instancji klasy: Maksymalna dopuszczalna liczba składników mieszaniny. Rzeczywista liczba jest określana dynamicznie na piksel. Próg określający, czy komponent jest wystarczająco znaczący, aby zostać włączony do modelu tła (odpowiada to TB1-cf z papieru paperwhich). cf0.1 gt TB0.9 jest domyślnie. Dla alfa0.001. oznacza to, że tryb powinien istnieć dla około 105 klatek, zanim zostanie uznany za pierwszy plan. Próg dla kwadratu odległości Mahalanobisa, który pomaga zdecydować, kiedy próbka znajduje się blisko istniejących elementów (odpowiada Tg). Jeśli nie jest zbliżony do żadnego komponentu, generowany jest nowy komponent. 3 sigma gt Tg339 jest domyślnie. Mniejsza wartość Tg generuje więcej składników. Wyższa wartość Tg może powodować niewielką liczbę składników, ale mogą one rosnąć zbyt duże. Początkowa wariancja dla nowo wygenerowanych komponentów. Wpływa na szybkość adaptacji. Wartość parametru jest oparta na oszacowaniu typowego odchylenia standardowego od obrazów. OpenCV używa 15 jako rozsądnej wartości. Parametr używany do dalszej kontroli wariancji. Parametr używany do dalszej kontroli wariancji. Parametr zmniejszania złożoności. Ten parametr określa liczbę próbek potrzebnych do zaakceptowania, aby udowodnić, że komponent istnieje. CT0.05 jest wartością domyślną dla wszystkich próbek. Ustawiając CT0 otrzymujesz algorytm bardzo podobny do standardowego algorytmu StaufferampGrimson. Wartość oznaczania pikseli cienia na wyjściowej masce pierwszego planu. Wartość domyślna to 127. Próg cienia. Cień zostanie wykryty, jeśli piksel jest ciemniejszą wersją tła. Tau jest progiem określającym, jak ciemniejszy może być cień. Tau 0.5 oznacza, że jeśli piksel jest więcej niż dwa razy ciemniejszy, to nie jest to cień. Zobacz: Prati, Mikic, Trivedi, Cucchiarra, Wykrywanie ruchomych cieni. . IEEE PAMI, 2003. Ta klasa implementuje odjęcie modelu tła mieszaniny Gaussa opisane w: Z. Zivkovic, Improved adaptive Gausian model mieszaniny do odejmowania tła. Rozpoznawanie wzorców międzynarodowych konferencji, Wielka Brytania, sierpień 2004 r., ZoranzPublicationszivkovic2004ICPR. pdf. Kod jest bardzo szybki i wykonuje także wykrywanie cienia. Liczba komponentów Gaussa jest dostosowywana do piksela. Z. Zivkovic, F. van der Heijden, Efektywna estymacja gęstości adaptacyjnej na piksel obrazu dla zadania odejmowania tła. Pattern Recognition Letters, vol. 27, nie. 7, strony 773-780, 2006. Algorytm podobny do standardowego algorytmu StaufferampGrimson z dodatkowym wyborem liczby komponentów Gaussa w oparciu o: Z. Zivkovic, F. van der Heijden, Rekursywne, bezinteresowne uczenie się modeli z skończonymi miksturami, IEEE Trans . Analiza wzorów i analiza maszyn, vol.26, no.5, strony 651-656, 2004. BackgroundSubtractorMOG2 :: BackgroundSubtractorMOG2 C: BackgroundSubtractorMOG2. BackgroundSubtractorMOG2 () C: BackgroundSubtractorMOG2. BackgroundSubtractorMOG2 (int history, float varThreshold, bool bShadowDetection true) history 8211 Długość historii. varThreshold 8211 Próg na kwadratowej odległości Mahalanobisa, aby zdecydować, czy jest dobrze opisany przez model tła (patrz Cthr). Ten parametr nie ma wpływu na aktualizację w tle. Typowa wartość może wynosić 4 sigma, czyli varThreshold4416 (patrz Tb). bShadowDetection 8211 Parametr określający, czy należy włączyć wykrywanie cienia (prawda czy fałsz). BackgroundSubtractorMOG2 :: operator () Aktualizuje model tła i oblicza maskę pierwszego planu C: void BackgroundSubtractorMOG2. operator () (obraz InputArray, OutputArray fgmask, double learningRate -1) BackgroundSubtractorMOG2 :: getBackgroundImage Zwraca obraz tła C: void BackgroundSubtractorMOG2. getBackgroundImage (OutputArray backgroundImage)
Comments
Post a Comment