Python ile Görüntü Kontrastını Artırma

OpenCV kütüphanesi, görüntü işleme projeleri için geniş bir fonksiyon yelpazesi sunar. Bu projeler arasında, özellikle düşük kaliteli görüntülerin daha etkileyici ve net hale getirilmesi büyük önem taşır. Görüntülerdeki kontrast eksikliği, detayların kaybolmasına yol açar ve bu da izleyicilerin ilgisini azaltabilir. Python ve OpenCV kütüphanesini kullanarak görüntü kontrastını artırmak oldukça kolaydır. Bu yazıda, Python ile görüntü kontrastını artırma yöntemlerine ve kod örneklerine odaklanacağız.

Kontrast, bir görüntüdeki en parlak ve en karanlık kısımlar arasındaki farktır. Yüksek kontrastlı görüntülerde bu fark belirgindir ve detaylar daha net bir şekilde görünürken, düşük kontrastlı görüntülerde detaylar kaybolabilir. Kontrast artırma işlemi, görüntüyü daha etkileyici hale getirir ve detayları öne çıkarır.

OpenCV, Python için bir görüntü işleme kütüphanesidir ve bu kütüphane sayesinde görüntüleri kolayca okuyup yazabilir, dönüştürebilir ve filtreleyebilirsiniz. Kontrast artırma işlemi de bu filtreleme yöntemlerinden biridir.

1. Adım: Gerekli Kütüphaneleri İndirin ve Yükleyin

İlk olarak, projelerimiz için gerekli olan OpenCV ve Matplotlib kütüphanelerini yüklememiz gerekiyor. Bu kütüphaneler, görüntü işleme işlemleri için gereken araçları sağlayacak.

!pip install opencv-python matplotlib

Yukarıdaki komut, OpenCV ve Matplotlib kütüphanelerini yükler. Bu kütüphanelerin yüklenmesinin ardından artık görüntü işleme işlemlerine geçebiliriz.

2. Adım: Görüntüyü Yükleyin ve Gösterin

Yüklediğimiz kütüphaneleri kullanarak bir görüntü dosyasını okuyup ekranda göstereceğiz. Aşağıdaki kod, belirtilen dosya yolundaki görüntüyü okur ve gösterir:

import cv2
import matplotlib.pyplot as plt

# Görüntüyü yükle
img = cv2.imread('görüntü.jpg')

# BGR'den RGB'ye dönüştür
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Görüntüyü göster
plt.imshow(img)
plt.axis('off')
plt.show()

Bu kodda, öncelikle OpenCV ve Matplotlib kütüphanelerini içe aktarıyoruz. Ardından ‘görüntü.jpg’ dosyasını okuyoruz ve BGR formatından RGB formatına dönüştürüyoruz. Son olarak, görüntüyü ekranda gösteriyoruz.

3. Adım: Kontrastı Artırma İşlemini Gerçekleştirin

Görüntünün kontrastını artırmak için OpenCV’nin cv2.convertScaleAbs() fonksiyonunu kullanacağız. Bu fonksiyon, görüntüyü belirli bir ölçek faktörüyle çarpar ve ardından sabit bir değeri ekler. Bu işlem, görüntünün her pikselinin değerini değiştirerek kontrastı artırır.

alpha = 1.5  # Ölçek faktörü
beta = 0     # Sabit değer

# Kontrastı artır
kontrastli_img = cv2.convertScaleAbs(img, alpha=alpha, beta=beta)

Yukarıdaki kodda alpha ve beta değişkenleri ile kontrast artışı oranını belirliyoruz. Daha sonra cv2.convertScaleAbs() fonksiyonunu kullanarak orijinal görüntüyü işliyoruz.

4. Adım: Sonuçları Gösterin

Kodun son kısmında hem orijinal hem de kontrastı artırılmış görüntüyü yan yana göstererek sonuçları görselleştireceğiz:

# Sonuçları göster
plt.subplot(1, 2, 1)
plt.imshow(img)
plt.axis('off')
plt.title('Orijinal Görüntü')

plt.subplot(1, 2, 2)
plt.imshow(kontrastli_img)
plt.axis('off')
plt.title('Kontrast Artırılmış Görüntü')

plt.show()

Bu kodda plt.subplot() fonksiyonu ile iki ayrı alt alan oluşturuyoruz. Birinci alt alanda orijinal görüntüyü gösterirken, ikinci alt alanda kontrastı artırılmış görüntüyü gösteriyoruz.

Tam Kod Örneği

Aşağıda tüm adımları içeren kod örneğini bulabilirsiniz:

import cv2
import matplotlib.pyplot as plt

# Görüntüyü yükle
img = cv2.imread('görüntü.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Kontrast artırma parametreleri
alpha = 1.5  # Ölçek faktörü
beta = 0     # Sabit değer
kontrastli_img = cv2.convertScaleAbs(img, alpha=alpha, beta=beta)

# Sonuçları göster
plt.subplot(1, 2, 1)
plt.imshow(img)
plt.axis('off')
plt.title('Orijinal Görüntü')
plt.subplot(1, 2, 2)
plt.imshow(kontrastli_img)
plt.axis('off')
plt.title('Kontrast Artırılmış Görüntü')
plt.show()

Kodun Çalışması İçin Gereksinimler

Aşağıdaki gereksinimleri karşılayan bir çalışma ortamına ihtiyacınız var:

  • Python 3.x: Python’un en son sürümünü indirip kurun.
  • PIP: Python paket yöneticisi PIP’in yüklü olduğundan emin olun.
  • Kütüphaneler: OpenCV ve Matplotlib kütüphanelerinin yüklü olduğundan emin olun.

Bu gereksinimleri karşıladıktan sonra yukarıdaki kodu çalıştırabilirsiniz.

Sıkça Sorulan Sorular (SSS)

  • Kontrast nedir? Kontrast, bir görüntünün en açık ve en koyu bölgeleri arasındaki farktır.
  • Neden kontrast artırmalıyım? Düşük kaliteli veya bulanık görüntülerde detaylar kaybolabilir. Kontrast artırma işlemi ile bu detaylar öne çıkarılır ve görüntünün kalitesi iyileştirilir.
  • Aynı zamanda parlaklığı da artırabilir miyim? Evet, beta değerini değiştirerek parlaklığı da artırabilirsiniz.
  • Kodda hangi görüntüyü kullanmalıyım? Kodda belirtilen dosya yolundaki herhangi bir görüntüyü kullanabilirsiniz.

Sonuç

Python ile OpenCV kütüphanesini kullanarak görüntülerinizin kontrastını kolayca artırabilirsiniz. Bu işlem sayesinde düşük kaliteli görüntülerinizin detaylarını öne çıkarabilir ve daha etkileyici hale getirebilirsiniz.

Scroll to Top