1. Vizual effektlər
Vizual effektlərə giriş
Bugün biz yalnız parlaqlığı və kontrastı dəyişməyi öyrənməyəcəyik, həm də yaradıcılıqlarınıza xüsusi bir stil bəxş etməyi bacaracağıq - elə hollivud blokbasterlərindən geri qalmayacaq səviyyədə. Yaxşı, ya da sadəcə köhnə bir telefonla çəkilmiş videonuzu daha baxımlı edərsiniz.
Video işləmə məsələsinə gəldikdə, vizual effektləri necə tətbiq etməyi bilmək məzmun yaratmaqda sizin gizli tərkib hissənizdir. Vizual effektlər videonu daha parlaq etməyə, vacib detalların altını çəkməyə və ya klipin ümumi stilini dəyişməyə kömək edə bilər.
Parlaqlığın, kontrastın və rəngin dəyişdirilməsinin əsasları
Praktikaya keçməzdən əvvəl, gəlin videonun kontekstində parlaqlıq, kontrast və rəng nə olduğunu başa düşməyimizi yeniləyək.
- Parlaqlıq — görüntünün ümumi işıqlılığı və ya qaranlığıdır. Parlaqlığın artırılması videonu daha işıqlı, azaldılması isə daha tünd edir.
- Kontrast — videonun ən işıqlı və ən tünd hissələri arasındakı fərqdir. Yüksək kontrast videonu daha doymuş, aşağı kontrast isə daha yastı göstərir.
- Rəng korreksiyası — videonun keyfiyyətini artırmaq üçün rəng balansının dəyişdirilməsi prosesidir.
2. Videonun parlaqlığını dəyişmək
İndi gəlin koda keçək və MoviePy vasitəsilə bu effektləri necə tətbiq edə biləcəyimizi görək.
Videonun parlaqlığını fl_image()
metodu ilə dəyişmək
Videonun parlaqlığını fl_image
metodu ilə dəyişmək mümkündür. Bu metod istifadəçi tərəfindən yaradılmış funksiyaları videonun bütün kadrlarına tətbiq etməyə imkan verir. Əgər parlaqlığı 20% artırmaq istəyirsinizsə, 1.2 faktorunu təyin edin.
from moviepy.editor import VideoFileClip
# Parlaqlığı dəyişmək üçün funksiya
def change_brightness(image, factor=1.2):
return image * factor
# Video faylını açmaq
clip = VideoFileClip("video.mp4")
# Parlaqlığı dəyişmək
brightened_clip = clip.fl_image(lambda frame: change_brightness(frame, 1.2))
# Nəticəni yadda saxlamaq
brightened_clip.write_videofile("brightened_video.mp4")
Videonun parlaqlığını moviepy.video.fx.all vasitəsilə dəyişmək
Həmçinin, videonun parlaqlığını lum_contrast
effekti vasitəsilə dəyişmək olar, bu effekt videoklipin parlaqlığını artırmağa və ya azaltmağa imkan verir.
Videonun parlaqlığını artırmaq
from moviepy.editor import VideoFileClip
from moviepy.video.fx.all import lum_contrast
# Videonu yükləmək
video = VideoFileClip("sample_video.mp4")
# Parlaqlığı artırmaq üçün effektin tətbiqi
bright_video = lum_contrast(video, lum=30) # Parlaqlığı 30 vahid artırır
# Nəticəni yadda saxlamaq
bright_video.write_videofile("bright_video.mp4")
Bu nümunədə:
lum_contrast(video, lum=30)
videonun parlaqlığını 30 vahid artırır. Parlaqlıq dəyəri həm müsbət (parlaqlığı artırmaq üçün), həm də mənfi (qaraltmaq üçün) ola bilər.
Videonun parlaqlığını azaltmaq
# Parlaqlığı azaltmaq üçün effektin tətbiqi
dark_video = lum_contrast(video, lum=-30) # Parlaqlığı 30 vahid azaldır
# Nəticəni yadda saxlamaq
dark_video.write_videofile("dark_video.mp4")
3. Videonun kontrastının dəyişdirilməsi
Videonun kontrastı işıqlı və qaranlıq hissələrin parlaqlığını və doymasını təyin edir. Kontrastın artırılması işıqlı hissələri daha parlaq, qaranlıq hissələri daha qaranlıq edir, kontrastın azaldılması isə işıqlı və qaranlıq hissələr arasındakı fərqi azaldır.
fl_image()
metodu ilə kontrast dəyişdirilməsi
Kontrastı şəkil çevrilməsi funksiyasından istifadə edərək oxşar şəkildə dəyişə bilərsiniz. Budur bunu necə etmək olar:
import numpy as np
# Kontrast dəyişdirmək üçün funksiya
def change_contrast(image, factor=1.5):
mean = np.mean(image)
return (image - mean) * factor + mean
# Kontrast dəyişikliyinin tətbiqi
contrasted_clip = clip.fl_image(lambda frame: change_contrast(frame, 1.5))
# Nəticənin yadda saxlanılması
contrasted_clip.write_videofile("contrasted_video.mp4")
lum_contrast()
metodu ilə kontrast dəyişdirilməsi
Videonun kontrastının artırılması
# Kontrastın artırılması
high_contrast_video = lum_contrast(video, contrast=1.5) # Kontrastı 50% artırır
# Nəticənin yadda saxlanılması
high_contrast_video.write_videofile("high_contrast_video.mp4")
Burada:
contrast = 1.5
kontrastı 50% artırır. Kontrastı artırmaq üçün 1-dən böyük istənilən dəyəri göstərə bilərsiniz.
Videonun kontrastının azaldılması
# Kontrastın azaldılması
low_contrast_video = lum_contrast(video, contrast=0.5) # Kontrastı 50% azaldır
# Nəticənin yadda saxlanılması
low_contrast_video.write_videofile("low_contrast_video.mp4")
Burada:
contrast = 0.5
kontrastı 50% azaldır. 1-dən kiçik dəyərlər kontrastı azaldır ki, bu da təsviri daha az doymuş edir.
4. Videonun rəng xüsusiyyətlərinin dəyişdirilməsi
MoviePy rəng palitrasını dəyişməyə, görüntünü qara-ağ rejimə çevirməyə və digər rəng effektlərinə imkan verir.
fl_image()
metodu ilə rəng korrektəsi
Rəng korrektəsi üçün biz rəng palitrasını dəyişməyə imkan verən rgb_color
funksiyasından istifadə edə bilərik.
def adjust_color(image, factor=0.8):
return image * np.array([1, factor, factor]) # yaşıl və mavi kanalların azaldılması
# Rəng korrektəsinin tətbiqi
color_corrected_clip = clip.fl_image(lambda frame: adjust_color(frame, 0.8))
# Nəticənin saxlanılması
color_corrected_clip.write_videofile("color_corrected_video.mp4")
moviepy.video.fx.all ilə rəng korrektəsi
MoviePy rəng palitrasını dəyişməyə, görüntünü qara-ağ rejimə çevirməyə və digər rəng effektlərinə imkan verir.
Videonu qara-ağ rejimə çevirmək
Qara-ağ video yaratmaq üçün fx
metodu ilə blackwhite
funksiyasından istifadə etmək olar.
from moviepy.video.fx.all import blackwhite
# Videonun qara-ağ rejimə çevrilməsi
bw_video = blackwhite(video)
# Nəticənin saxlanılması
bw_video.write_videofile("black_and_white_video.mp4")
Burada:
blackwhite(video)
videonu boz tonlara çevirir.
Videonun rənglərini invertasiya etmək
MoviePy dramatik və ya artistik effektlər yaratmaq üçün rənglərin invertasiya effektini istifadə etməyə imkan verir.
from moviepy.video.fx.all import invert_colors
# Videonun rənglərinin invertasiyası
inverted_video = invert_colors(video)
# Nəticənin saxlanılması
inverted_video.write_videofile("inverted_video.mp4")
Burada:
invert_colors(video)
videodakı bütün rəngləri invertasiya edir və "neqativ görüntü" effekti yaradır.
5. Filtrlərin tətbiqi
Səpiya effekti yaratmaq üçün rəng filtrlərinin tətbiqi
Səpiya effekti yaratmaq üçün, videoya isti qəhvəyi bir çalar əlavə edən bir filtr tətbiq edə bilərsiniz. MoviePy-də bunu etmək üçün rəng kanallarını əl ilə dəyişə bilərsiniz.
Səpiya effektinin yaradılması
from moviepy.video.fx.all import colorx
# Səpiya effekti tətbiqi (mavi və yaşıl kanalın azaldılması)
sepia_video = colorx(video, 0.9)
# Nəticənin saxlanılması
sepia_video.write_videofile("sepia_video.mp4")
Bu nümunədə:
colorx(video, 0.9)
rəng doyumluluğunu azaldır. Bu effekti digər effektlərlə birləşdirərək isti çalarlara nail ola bilərsiniz.
Fərdi filtrlərin istifadəsi
Əgər unikal bir rəng effekti yaratmaq lazımdırsa, MoviePy fərdi filtrlər yazmağa imkan verir. Bu, hər videokadr üçün tətbiq olunacaq bir funksiya yaradaraq edilir.
Qırmızı kanalın artırılması üçün fərdi filtr yaradılması
import numpy as np
# Qırmızı kanalın artırılması üçün fərdi funksiya
def enhance_red(image):
image[:, :, 0] = np.clip(image[:, :, 0] * 1.5, 0, 255) # Qırmızı kanalın artırılması
return image
# Fərdi filtrin tətbiqi
red_video = video.fl_image(enhance_red)
# Nəticənin saxlanılması
red_video.write_videofile("enhanced_red_video.mp4")
Bu nümunədə:
enhance_red(image)
funksiyası şəkilin qırmızı kanalını gücləndirir, onu daha parlaq edir.fl_image()
bu funksiyanı hər videokadra tətbiq edir, qırmızı kanalın gücləndirilməsi effektini yaradır.
Problemlər və həllər
İlk baxışda, videonu rəngli etmək sadə görünür. Amma proqramlaşdırmada olduğu kimi, həmişə nüanslar olur. Məsələn, çox yüksək parlaqlıq işıqlı sahələrdəki detalları "yoxa çıxara" bilər, həddindən artıq kontrast isə videonu vizual olaraq "səsli" hala gətirə bilər. Bu dəyişiklikləri tədricən etmək və nəticəni videonun kiçik fraqmentlərində yoxlamaq tövsiyə olunur.
Bundan əlavə, performansı unutmayın. Hər bir kadrın dəyişdirilməsi resurs tələb edən bir prosesdir. Effektlərlə eksperiment edərkən videonun hədsiz dərəcədə uzun olmamasını təmin etmək ağıllıdır.
GO TO FULL VERSION