CodeGym /Kurslar /Python SELF AZ /Vizual filtrlər və effektlərin tətbiqi: parlaqlıq, kontra...

Vizual filtrlər və effektlərin tətbiqi: parlaqlıq, kontrast və rəng dəyişdirilməsi

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

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.

Python

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

Python

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

Python

# 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:

Python

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ı

Python

# 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ı

Python

# 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.

Python

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.

Python

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.

Python

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ı

Python

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ı

Python

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.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION