Mam obraz twarzy i użyłem kaskad haar, aby wykryć lokalizacje (x, y, szerokość, wysokość) jamy ustnej, nosa i każdego oka. Chciałbym ustawić wszystkie piksele poza tymi regionami na zero. Jaki byłby najszybszy (obliczeniowo) sposób na zrobienie tego? W końcu zrobię to na klatkach wideo w czasie rzeczywistym.OpenCV przez python: Czy istnieje szybka droga do zera pikseli poza zestawem prostokątów?
8
A
Odpowiedz
13
Nie wiem, czy jest to najszybszy sposób, ale jest to sposób na zrobienie tego.
Utwórz obraz maski z regionem twarzy jako biały, a następnie zastosuj funkcję bitową_i z oryginalnym obrazem i obrazem maski.
x = y = 30
w = h = 100
mask = np.zeros(img.shape[:2],np.uint8)
mask[y:y+h,x:x+w] = 255
res = cv2.bitwise_and(img,img,mask = mask)
Zajmuje 0.16 ms
w moim systemie (rdzeń i5,4GB RAM) dla obrazu o rozmiarze 400x300
EDIT - lepsza metoda: Nie trzeba robić jak wyżej. Po prostu utwórz zerowy obraz, a następnie skopiuj ROI z oryginalnego obrazu do zera. to wszystko.
mask = np.zeros(img.shape,np.uint8)
mask[y:y+h,x:x+w] = img[y:y+h,x:x+w]
To trwa tylko 0.032 ms
w moim systemie dla powyższych parametrów, 5 times faster
niż powyżej.
Wyniki: image
Wejście:
wyjściowa:
Powiązane problemy
- 1. Najszybsza droga do rysowania pikseli w FireMonkey
- 2. Groupby w Pythonie: Szybka droga
- 3. Crop Rectangle zwrócony przez minAreaRect OpenCV [Python]
- 4. OpenCV - kurczyć obiektów pikseli
- 5. Szybka droga do globalizacji wielu zmiennych w JavaScript?
- 6. Błędy kompilatora po aktualizacji do Opencv 2.4.5 na iOS. Czy istnieje szybka naprawa tych problemów?
- 7. Jak uzyskać współrzędne pikseli z dopasowywania elementów w OpenCV Python
- 8. Czy istnieje szybka metoda deklarowania funkcji inline?
- 9. Dostęp do pikseli wzdłuż krzywej/ścieżki przy użyciu opencv
- 10. Czy istnieje podspec dla Opencv?
- 11. Opencv - Współrzędne pikseli z dopasowywania elementów
- 12. OpenCV: Wyszukiwanie pikseli wzdłuż gałęzi jednopikselowych
- 13. Buforowanie nakładek przez zaokrąglenie współrzędnych prostokątów - jak?
- 14. Droga do "reinit" repozytorium
- 15. Usuwanie hałaśliwych pikseli za pomocą opencv
- 16. OpenCV C++: jak uzyskać dostęp do wartości pikseli CV_32F przez wskaźnik danych ucharowych
- 17. OpenCV 2.3: Konwertuj macie do macierzy pikseli RGBA
- 18. Uzyskiwanie dostępu do wartości pikseli OpenCV 2.3 - C++
- 19. Stosowanie cieniowania pikseli do obrazów
- 20. szybka konwersja IplImage do NumPy tablicy
- 21. Czy istnieją algorytmy do obliczania prostokątu prostokątów rysowane na monochromatycznym tle?
- 22. Jak używać opencv (python) do rozmycia twarzy?
- 23. Czy istnieje kolejka (PriorityQueue), która jest również zestawem?
- 24. OpenCV HOGDescrypter Python
- 25. Szybka relacyjnej bazy danych do łatwego użycia z Python
- 26. Czy istnieje szybka metoda zwracania wartości Sin i Cos tej samej wartości w języku Python?
- 27. Czy istnieje nowa standardowa szerokość strony internetowej? Ile pikseli?
- 28. Czy istnieje aplikacja do tworzenia wyrażeń regularnych poza tekstem przez wybranie obszaru poszukiwanego?
- 29. python openCV 3.0 LineIterator
- 30. Błąd Python OpenCV Error