Możliwe jest zastosowanie czasowego i przestrzennego rozmycia do segmentu / sekcji - przy założeniu, że obszar, który chcesz rozmazać, jest lokalizacją statyczną.
Oryginalny obraz czarnego szczeniąt laboratoryjnych.
Korzystanie z obrazu maski
Obraz w skali szarości PNG i wynikowy obraz rozmazany.
Możesz zrobić obraz maski w skali szarości, aby wskazać obszar do rozmycia. Dla łatwości użycia powinien on mieć taki sam rozmiar jak obraz lub wideo, które chcesz rozmazać.
Biały obszar jest miejscem rozmycia, ale można to łatwo odwrócić na przykład za pomocą filtra negacji :[1:v]negate[mask];[0:v][mask]alphamerge,boxblur=10[alf]...
Możesz użyć filtra geq do wygenerowania maski, takiej jak gradient.
Uwaga: Liczby przesunięcia xiy w nakładce ( 60iw 30tym przykładzie) muszą pasować do przesunięć przycięcia.
Co robi ten przykład:
Przytnij kopię, aby uzyskać rozmiar obszaru do rozmycia. W tym przykładzie: pole 200 x 200 pikseli, które znajduje się 60 pikseli w prawo ( xoś) i 30 pikseli w dół ( yoś) od lewego górnego rogu.
Rozmyj przycięty obszar.
Nakładaj rozmazany obszar, używając tego samego xi yparametrów z filtra upraw .
Wiele plam na określonych obszarach (bez maski)
Zamazane obszary w lewym górnym rogu, w pobliżu środka i na dole.
Dziękuję bardzo za odpowiedź. To wszystko ma sens. Na marginesie, dzięki temu filtr podzielony ma wreszcie sens! Czy można również za pomocą wyrażeń arytmetycznych dynamicznie przenosić rozmyte pole wokół obrazu? IE w celu zamazania czyjejś twarzy, gdy poruszają się one w sposób nieliniowy?
occvtech
Dzięki jeszcze raz! Zrobię to. Wiem, że edytor nieliniowy byłby tutaj 1000 razy łatwiejszy, ale mam nadzieję na przetwarzanie wsadowe wielu plików i nie chcę czekać przez proces importu / ramki klucza / eksportu. Dzięki jeszcze raz!
occvtech 16.04.15
1
czy FFMPEG oferuje inne kształty oprócz pudeł, takich jak koła?
niedz.
@ LordNeckbeard Używam cmd i chcę użyć przykładu 1, ale kiedy wykonuję kod, pojawia się ten błądUnrecognized option 'filter_complex[0:v]crop=200:200:60:30,boxblur=10[fg];[0:v][fg]overlay=60:30[v]-map [v] -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4'. Error splitting the argument list: Option not found
Możesz zmienić parametry w ostatniej i przedostatniej linii, ostatnie dwa parametry między znakami cudzysłowu to ścieżka do twojego wideo i wyjściowego wideo (zakładając, że są umieszczone w katalogu roboczym). W przedostatniej linii:
pierwsze dwie liczby wskazują rozmiar początkowego obszaru, do którego zostanie zastosowane maksymalne rozmycie,
drugie dwa wskazują ich współrzędne xiy,
trzecie dwa wskazują czasy w sekundach, w których należy zastosować rozmycie,
„25” w tym przykładzie oznacza, że zostanie nałożone 25 pól na siebie)
następne „1” oznacza, że większe pola z mniejszym rozmyciem powinny być tylko o jeden piksel szersze niż ich poprzednicy
drugie „1” oznacza, że rozmycie powinno wzrosnąć o jeden, aż do maksymalnie 25 (z góry)
„30” oznacza margines brany pod uwagę przy stosowaniu rozmycia, więc zwiększenie tego powoduje, że rozmycie bardziej odpowiada otoczeniu. Zwiększenie tej wartości rozwiązuje również błąd tekstowy podobny doInvalid chroma radius value 21, must be >= 0 and <= 20
Uruchamiając go, należy uzyskać dane wyjściowe takie jak poniżej (jest zapisywane do pliku, który można uruchomić i wydrukować na wydruku, który można skopiować i uruchomić):
Unrecognized option 'filter_complex[0:v]crop=200:200:60:30,boxblur=10[fg];[0:v][fg]overlay=60:30[v]-map [v] -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4'. Error splitting the argument list: Option not found
ffmpeg -i input.mp4 -filter_complex "[0:v]crop=200:200:60:30,boxblur=10[fg]; [0:v][fg]overlay=60:30[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart output.mp4
Na wypadek, gdy ktoś nie lubi ostrego rozmycia, stworzyłem skrypt, który nakłada różne etapy rozmycia, aby krawędź nie była ostra i wyglądała tak:
Zamiast tego:
Jest to skrypt Pythona:
Możesz zmienić parametry w ostatniej i przedostatniej linii, ostatnie dwa parametry między znakami cudzysłowu to ścieżka do twojego wideo i wyjściowego wideo (zakładając, że są umieszczone w katalogu roboczym). W przedostatniej linii:
Invalid chroma radius value 21, must be >= 0 and <= 20
Uruchamiając go, należy uzyskać dane wyjściowe takie jak poniżej (jest zapisywane do pliku, który można uruchomić i wydrukować na wydruku, który można skopiować i uruchomić):
źródło