Python ile görüntü işleme yapmak için en pratik başlangıç,
Bu kodda
Buradaki koordinatlar
Görüntü açılıyor fakat renkler veya yön beklenenden farklıysa, önce giriş dosyasını başka bir görüntüleyicide kontrol edin. İşleme başarılı biçimde tamamlanmış olması, kaynak görüntünün doğru pozlanmış, keskin veya içerik bakımından doğru olduğu anlamına gelmez; kod yalnızca uygulanan dönüşümü gerçekleştirir.
Pillow kütüphanesini sanal ortama kurup bir görüntüyü açmak, dönüştürmek ve yeni dosya olarak kaydetmektir. Aşağıdaki örnek, bir fotoğrafı doğru yönüne çevirir, gri tonlamaya dönüştürür, en fazla 1200 piksel olacak şekilde küçültür ve cikti_gri.png adıyla kaydeder. Bu temel akıştan sonra kırpma, döndürme, bulanıklaştırma veya piksel analizi gibi işlemler eklenebilir.Kurulum ve çalışma ortamı
Projeye özel sanal ortam kullanmak, görüntü işleme kütüphanelerini sistemdeki diğer Python projelerinden ayırır. Komutları, kod dosyanızın bulunacağı klasörde çalıştırın.- Sanal ortamı oluşturun. Windows'ta PowerShell veya Komut İstemi'ni, Linux ve macOS'ta Terminal'i açıp aşağıdaki komutu çalıştırın.
Kod:python -m venv .venv - Sanal ortamı etkinleştirin. İşletim sisteminize uygun komutu kullanın; komut satırının başında
(.venv)görünmesi, ortamın etkin olduğunu gösterir.
Windows PowerShell:
Kod:.venv\Scripts\Activate.ps1
Windows Komut İstemi:
Kod:.venv\Scripts\activate.bat
Linux veya macOS:
Bash:source .venv/bin/activate - Pillow'u kurun. Kütüphaneyi etkin sanal ortama kurmak için şu komutu çalıştırın.
Bash:python -m pip install Pillow
Kurulum tamamlandığında Python kodu içinde kütüphanePILadıyla içe aktarılır; paket adı ile içe aktarma adı aynı değildir.
Bir görüntüyü dönüştürme
Proje klasörüne işlenecek görüntüyügirdi.jpg adıyla koyun veya kodda bu dosya adını kendi dosyanızla değiştirin. Aşağıdaki örnek varsayımsaldır; çalıştırıldığında aynı klasörde cikti_gri.png dosyasının oluşması beklenir.
Python:
from PIL import Image, ImageOps
with Image.open("girdi.jpg") as image:
image = ImageOps.exif_transpose(image)
image = ImageOps.grayscale(image)
image.thumbnail((1200, 1200))
image.save("cikti_gri.png")
print("İşleme tamamlandı: cikti_gri.png")
Bu kodda
Image.open() görüntüyü açar. ImageOps.exif_transpose(), bazı fotoğraf makineleri ve telefonların dosyaya yazdığı yön bilgisini görüntüye uygular. ImageOps.grayscale() renkli görüntüyü gri tonlamaya çevirir. thumbnail() en-boy oranını koruyarak görüntüyü küçültür; görüntü zaten daha küçükse büyütmez. Son satır, sonucu PNG biçiminde kaydeder.- Kod dosyasını oluşturun. Metin düzenleyicide
isle.pyadlı bir dosya açıp kodu içine yapıştırın ve dosyayıgirdi.jpgile aynı klasöre kaydedin. - Programı çalıştırın. Sanal ortam etkinken şu komutu verin.
Bash:python isle.py - Çıktıyı kontrol edin. Ekranda
İşleme tamamlandı: cikti_gri.pngmesajı görünmeli ve klasörde yeni bir PNG dosyası oluşmalıdır. Dosya açılıyor ancak görüntü yan dönüyorsa, yön bilgisinin dosyada bulunmadığını veya görüntünün daha önce kalıcı olarak döndürüldüğünü düşünün; bu durumdaexif_transpose()tek başına eksik yön bilgisini tahmin edemez.
Yaygın işlemleri eklemek
Aynı görüntü üzerinde temel işlemler, açılan görüntü nesnesi üzerinde uygulanabilir. Örneğin belirli bir alanı kırpmak içincrop(), 90 derece döndürmek için rotate(90, expand=True), boyutlandırmak için resize() kullanılabilir.
Python:
from PIL import Image
with Image.open("girdi.jpg") as image:
kirpilmis = image.crop((100, 100, 900, 700))
kirpilmis = kirpilmis.resize((800, 600))
kirpilmis.save("cikti_kirpildi.jpg", quality=90)
Buradaki koordinatlar
(sol, üst, sağ, alt) sırasındadır ve piksel cinsindendir. Görüntünün genişliği veya yüksekliği bu sınırları karşılamıyorsa istenmeyen kırpma sonucu ya da hata oluşabilir; önce image.size ile gerçek boyutu kontrol edebilirsiniz.Hata durumunu yorumlama
FileNotFoundError alırsanız Python, girdi.jpg dosyasını programın çalıştırıldığı klasörde bulamamıştır. Dosya adını, uzantıyı ve klasör yolunu kontrol edin. Windows'ta dosya uzantıları gizlenebildiği için dosyanın gerçekte girdi.jpg.jpg olarak kaydedilmediğinden emin olun.ModuleNotFoundError: No module named 'PIL' hatası, Pillow'un kodu çalıştıran Python ortamına kurulmadığını gösterir. Sanal ortamın etkin olduğunu kontrol edip python -m pip install Pillow komutunu aynı ortamda yeniden çalıştırın. Kurulum başka bir Python'a yapıldıysa, python -m pip kullanımı doğru yorumlayıcıya paket kurmayı kolaylaştırır.Görüntü açılıyor fakat renkler veya yön beklenenden farklıysa, önce giriş dosyasını başka bir görüntüleyicide kontrol edin. İşleme başarılı biçimde tamamlanmış olması, kaynak görüntünün doğru pozlanmış, keskin veya içerik bakımından doğru olduğu anlamına gelmez; kod yalnızca uygulanan dönüşümü gerçekleştirir.
Son düzenleme: