Python ile resim filtreleme işlemleri, görüntüleri işlemek ve belirli efektler eklemek için yaygın olarak kullanılan bir tekniktir. Bu işlem, görüntüleri daha estetik hale getirmek, nesneleri vurgulamak veya arka planda gürültüyü azaltmak için kullanılır. Python’un çeşitli kütüphaneleri, bu işlemi kolay ve verimli bir şekilde gerçekleştirmeye olanak tanır.
Python Resim Filtreleme Kütüphaneleri
- Pillow: Pillow, Python Imaging Library’nin (PIL) geliştirilmiş bir sürümüdür. Bu kütüphane, resim işleme için geniş bir özellik yelpazesi sunar.
- OpenCV: OpenCV, bilgisayarla görü uygulamaları için popüler bir kütüphanedir. Görüntü filtreleme ve işleme için güçlü araçlar içerir.
- Matplotlib: Matplotlib, görselleştirme için bir kütüphanedir. Görüntüleri görüntülemek ve basit filtreleme işlemleri yapmak için kullanılabilir.
Bu kütüphaneler, resim filtreleme işlemlerini kolaylaştırır ve verimlilik sağlar.
Python Resim Filtreleme Nasıl Yapılır?
Python ile resim filtreleme işlemi yaparken aşağıdaki adımları izleyebilirsiniz:
- Kütüphaneleri Yükleyin: Öncelikle kullanmak istediğiniz kütüphaneyi yükleyin. Örneğin, Pillow kütüphanesini yüklemek için terminal veya komut istemcisinde aşağıdaki komutu çalıştırabilirsiniz:
pip install Pillow
- Resmi İçe Aktarın: Filtre uygulamak istediğiniz resmi içe aktarın. Örneğin:
from PIL import Image
image = Image.open('orijinal_resim.jpg')
- Filtreyi Uygulayın: Kütüphanenin sunduğu filtre fonksiyonlarını kullanarak resmi filtreleyin. Örneğin, Pillow kütüphanesinde bulanıklaştırma filtresi uygulamak için:
from PIL import ImageFilter
blurred_image = image.filter(ImageFilter.BLUR)
- Filtrelenmiş Resmi Kaydedin: Filtrelenmiş resmi kaydetmek için:
blurred_image.save('bulanık_resim.jpg')
Bu adımları takip ederek Python ile resim filtreleme işlemini gerçekleştirebilirsiniz.
Pillow Kütüphanesi ile Resim Filtreleme Örnekleri
Pillow kütüphanesi, Python’da resim filtreleme işlemleri için oldukça kullanışlıdır. Aşağıda, Pillow kullanarak farklı filtrelerin nasıl uygulanacağına dair örnekler bulunmaktadır.
Bulanıklık Filtresi
Bulanıklık filtresi, bir görüntünün detaylarını ve kenarlarını yumuşatarak daha az net hale getirir.
from PIL import Image
from PIL import ImageFilter
# Resmi aç
resim = Image.open('orijinal_resim.jpg')
# Bulanıklık filtresini uygula
bulanık_resim = resim.filter(ImageFilter.BLUR)
# Filtrelenmiş resmi kaydet
bulanık_resim.save('bulanık_resim.jpg')
Siyah Beyaz Filtresi
Siyah beyaz filtresi, renkli bir görüntüyü siyah beyaz tonlarına dönüştürür.
from PIL import Image
# Resmi aç
resim = Image.open('orijinal_resim.jpg')
# Siyah beyaz filtresini uygula
bw_resim = resim.convert('L')
# Filtrelenmiş resmi kaydet
bw_resim.save('siyah_beyaz_resim.jpg')
Kenar Vurgulama Filtresi
Kenar vurgulama filtresi, bir görüntünün kenarlarını daha belirgin hale getirir.
from PIL import Image
from PIL import ImageFilter
# Resmi aç
resim = Image.open('orijinal_resim.jpg')
# Kenar vurgulama filtresini uygula
kenar_vurgulu_resim = resim.filter(ImageFilter.FIND_EDGES)
# Filtrelenmiş resmi kaydet
kenar_vurgulu_resim.save('kenar_vurgulu_resim.jpg')
OpenCV Kütüphanesi ile Resim Filtreleme Örnekleri
OpenCV, Python’da resim filtreleme işlemleri için güçlü bir araçtır. Aşağıda, OpenCV kullanarak çeşitli filtrelerin nasıl uygulanacağına dair örnekler bulunmaktadır.
Bulanıklık Filtresi
Bulanıklık filtresi, görüntünün detaylarını ve kenarlarını yumuşatarak daha az net hale getirir.
import cv2
import numpy as np
# Resmi oku
resim = cv2.imread('orijinal_resim.jpg')
# Bulanıklık filtresi uygula (kernel boyutu 15x15)
bulanık_resim = cv2.GaussianBlur(resim, (15, 15), 0)
# Filtrelenmiş resmi kaydet
cv2.imwrite('bulanık_resim.jpg', bulanık_resim)
Siyah Beyaz Filtresi
Siyah beyaz filtresi, renkli bir görüntüyü siyah beyaz tonlarına dönüştürür.
import cv2
# Resmi oku
resim = cv2.imread('orijinal_resim.jpg')
# Siyah beyaz filtresi uygula
bw_resim = cv2.cvtColor(resim, cv2.COLOR_BGR2GRAY)
# Filtrelenmiş resmi kaydet
cv2.imwrite('siyah_beyaz_resim.jpg', bw_resim)
Kenar Vurgulama Filtresi
Kenar vurgulama filtresi, bir görüntünün kenarlarını daha belirgin hale getirir.
import cv2
import numpy as np
# Resmi oku
resim = cv2.imread('orijinal_resim.jpg')
# Kenar vurgulama filtresi uygula (Canny algoritması)
bordervurgulu_resim = cv2.Canny(resim, 100, 200)
# Filtrelenmiş resmi kaydet
cv2.imwrite('kenar_vurgulu_resim.jpg', bordervurgulu_resim)
Matplotlib Kütüphanesi ile Resim Filtreleme Örnekleri
Matplotlib, görselleştirme için bir kütüphanedir ancak aynı zamanda basit resim filtreleme işlemleri için de kullanılabilir. Aşağıda, Matplotlib kullanarak resimleri nasıl görüntüleyip filtre uygulayabileceğinize dair örnekler bulunmaktadır.
Bulanıklık Filtresi
Bulanıklık filtresi, görüntünün detaylarını ve kenarlarını yumuşatarak daha az net hale getirir.
import matplotlib.pyplot as plt
import numpy as np
from scipy.ndimage import gaussian_filter
from PIL import Image
image = Image.open('orijinal_resim.jpg')
görüntü = np.array(image)
görüntü_bulanık = gaussian_filter(görüntü, sigma=(5, 5, 0))
yeni_görüntü = Image.fromarray(görüntü_bulanık)
yeni_görüntü.save("bulanık_resim.jpg")
display(yeni_görüntü)
display(yeni_görüntü)
display(yeni_görüntü)
display(yeni_görüntü)
display(yeni_görüntü)
display(yeni_görüntü)
display(yeni_görüntü)
Siyah Beyaz Filtresi
Siyah beyaz filtresi, renkli bir görüntüyü siyah beyaz tonlarına dönüştürür.
import matplotlib.pyplot as plt
from PIL import Image
display(Image.open("orijinal_resim.jpg"))
görüntü_siyah_beyaz = np.array(image.convert('L'))
yeni_görüntü = Image.fromarray(görüntü_siyah_beyaz)
yeni_görüntü.save("siyah_beyaz_resim.jpg")
display(yeni_görüntü)
Kenar Vurgulama Filtresi
Kenar vurgulama filtresi, bir görüntünün kenarlarını daha belirgin hale getirir.
import matplotlib.pyplot as plt
from PIL import Image
display(Image.open("orijinal_resim.jpg"))
kernel = np.array([[0, -1, 0], [-1, 5,-1],[0,-1,0]])
görüntü_kenar_vurgulu = np.zeros(görüntüler.shape)
için i aralığında(0, görüntüler.shape[0]):
için j aralığında(0,görüntüler.shape[1]):
görüntüler_kenar_vurgulu[i,j] = np.sum(kernel * görüntüler[i-1:i+1,j-1:j+1])
yeni_görüntü = Image.fromarray(görüntüler_kenar_vurgulu)
yeni_görüntü.save("kenar_vurgulu_resim.jpg")
display(yeni_görüntü)
Kendi Resimlerinizle Deneme Yapın!
Yukarıdaki örneklerde kullanılan resimleri kendi bilgisayarınızdaki resimler ile değiştirmek oldukça kolaydır. Aşağıdaki adımları takip ederek kendi resimlerinizle deneme yapabilirsiniz:
- Pillow veya OpenCV gibi gerekli kütüphanelerin kurulu olduğundan emin olun.
- Kendi resminizi bilgisayarınızdan uygun bir dizine kaydedin veya çalıştırdığınız Python dosyasıyla aynı dizine yerleştirin.
- Aşağıdaki örnek kodlarda "orijinal_resim.jpg" kısmını kendi resminizin dosya adıyla değiştirin. Örneğin "benimgoruntum.png" gibi.
- Kodları çalıştırdıktan sonra oluşturulan filtrelenmiş resimleri inceleyebilirsiniz.
Eğer kendi resminiz üzerinde hangi filtreleri denemek istediğinize karar veremiyorsanız, yukarıda verilen örneklerde yer alan filtrelerden herhangi birini seçebilirsiniz. Herhangi bir sorunuz veya yardıma ihtiyacınız olursa lütfen sormaktan çekinmeyin!