1. Efekty wizualne
Wprowadzenie do efektów wizualnych
Dziś nauczymy się nie tylko zmieniać jasność i kontrast, ale także nadawać swoim dziełom wyjątkowy styl, nie gorszy od hollywoodzkich blockbusterów. No, albo po prostu sprawić, żeby twoje wideo było bardziej oglądalne, jeśli zostało nagrane na stary telefon.
Kiedy mówimy o obróbce wideo, znajomość stosowania efektów wizualnych to twój sekretny składnik w tworzeniu treści, która przyciąga uwagę. Efekty wizualne mogą pomóc uczynić wideo bardziej jasnym, podkreślić ważne detale lub zmienić ogólny styl klipu.
Podstawy zmiany jasności, kontrastu i koloru
Zanim przejdziemy do praktyki, odświeżmy nasze rozumienie tego, czym jest jasność, kontrast i kolor w kontekście wideo.
- Jasność — to ogólna jasność lub ciemność obrazu. Zwiększenie jasności sprawia, że wideo staje się jaśniejsze, a zmniejszenie — ciemniejsze.
- Kontrast — to różnica między najjaśniejszymi i najciemniejszymi obszarami wideo. Wysoki kontrast sprawia, że wideo jest bardziej nasycone, niski — bardziej płaskie.
- Korekcja kolorów — to proces zmiany balansu kolorów w celu poprawy jakości wideo.
2. Zmiana jasności wideo
Teraz zanurzymy się w kod i zobaczymy, jak można zastosować te efekty za pomocą MoviePy.
Zmiana jasności wideo za pomocą metody fl_image()
Zmiana jasności wideo może być osiągnięta za pomocą metody fl_image
, która pozwala stosować
niestandardowe funkcje do wszystkich klatek wideo. Jeśli chcesz zwiększyć jasność o 20%, ustaw
współczynnik na 1.2.
from moviepy.editor import VideoFileClip
# Funkcja do zmiany jasności
def change_brightness(image, factor=1.2):
return image * factor
# Otworzenie pliku wideo
clip = VideoFileClip("video.mp4")
# Stosowanie zmiany jasności
brightened_clip = clip.fl_image(lambda frame: change_brightness(frame, 1.2))
# Zapisanie rezultatu
brightened_clip.write_videofile("brightened_video.mp4")
Zmiana jasności wideo za pomocą moviepy.video.fx.all
Zmianę jasności wideo można także zrobić za pomocą efektu lum_contrast
, który
pozwala zwiększać lub zmniejszać jasność klipu.
Zwiększenie jasności wideo
from moviepy.editor import VideoFileClip
from moviepy.video.fx.all import lum_contrast
# Załadowanie wideo
video = VideoFileClip("sample_video.mp4")
# Stosowanie efektu dla zwiększenia jasności
bright_video = lum_contrast(video, lum=30) # Zwiększenie jasności o 30 jednostek
# Zapisanie rezultatu
bright_video.write_videofile("bright_video.mp4")
W tym przykładzie:
lum_contrast(video, lum=30)
zwiększa jasność wideo o 30 jednostek. Wartość jasności może być zarówno dodatnia (dla zwiększenia jasności), jak i ujemna (dla przyciemnienia).
Zmniejszenie jasności wideo
# Stosowanie efektu dla zmniejszenia jasności
dark_video = lum_contrast(video, lum=-30) # Zmniejszenie jasności o 30 jednostek
# Zapisanie rezultatu
dark_video.write_videofile("dark_video.mp4")
3. Zmiana kontrastu wideo
Kontrast wideo odpowiada za jasność i nasycenie jasnych oraz ciemnych obszarów. Podnoszenie kontrastu sprawia, że jasne obszary są jaśniejsze, a ciemne bardziej ciemne, natomiast obniżanie kontrastu zmniejsza różnicę między jasnymi i ciemnymi obszarami.
Zmiana kontrastu za pomocą metody fl_image()
Kontrast można zmieniać w podobny sposób za pomocą funkcji przekształcenia obrazu. Oto jak można to zrobić:
import numpy as np
# Funkcja zmiany kontrastu
def change_contrast(image, factor=1.5):
mean = np.mean(image)
return (image - mean) * factor + mean
# Stosowanie zmiany kontrastu
contrasted_clip = clip.fl_image(lambda frame: change_contrast(frame, 1.5))
# Zapisanie rezultatu
contrasted_clip.write_videofile("contrasted_video.mp4")
GO TO FULL VERSION