Aşağıda, menülü ve birden fazla seçeneği aynı anda seçebilen 20 filtreli Python programı bulunmaktadır.
Filtre Listesi (20 Adet)
- Grayscale (Gri Tonlama)
- Sepia
- Negatif (Invert Colors)
- Gaussian Blur (Bulanıklık)
- Median Blur
- Kenarlık Tespiti (Canny Edge Detection)
- Keskinleştirme (Sharpening)
- Emboss (Kabartma Efekti)
- Pencil Sketch (Kurşun Kalem Efekti)
- Bilateral Filtering
- HSV Dönüştürme
- Kırmızı Ton Ağırlıklı Filtre
- Yeşil Ton Ağırlıklı Filtre
- Mavi Ton Ağırlıklı Filtre
- Sobel X Kenar Algılama
- Sobel Y Kenar Algılama
- Laplace Kenar Algılama
- Çizgisel Kontrast Artırma
- Parlaklık Artırma
- Kontrast Artırma
Kod: Menü ile Birden Çok Filtre Uygulama
import cv2
import numpy as np
def apply_grayscale(image):
return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
def apply_sepia(image):
sepia_filter = np.array([[0.272, 0.534, 0.131],
[0.349, 0.686, 0.168],
[0.393, 0.769, 0.189]])
return cv2.transform(image, sepia_filter)
def apply_negative(image):
return cv2.bitwise_not(image)
def apply_gaussian_blur(image):
return cv2.GaussianBlur(image, (15, 15), 0)
def apply_median_blur(image):
return cv2.medianBlur(image, 5)
def apply_edge_detection(image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
return cv2.Canny(gray, 100, 200)
def apply_sharpen(image):
kernel = np.array([[ 0, -1, 0],
[-1, 5, -1],
[ 0, -1, 0]])
return cv2.filter2D(image, -1, kernel)
def apply_emboss(image):
kernel = np.array([[-2, -1, 0],
[-1, 1, 1],
[ 0, 1, 2]])
return cv2.filter2D(image, -1, kernel)
def apply_pencil_sketch(image):
gray, sketch = cv2.pencilSketch(image, sigma_s=60, sigma_r=0.07, shade_factor=0.05)
return sketch
def apply_bilateral_filter(image):
return cv2.bilateralFilter(image, 9, 75, 75)
def apply_hsv(image):
return cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
def apply_red_filter(image):
red_filter = image.copy()
red_filter[:, :, 1] = 0 # Yeşil kapatıldı
red_filter[:, :, 0] = 0 # Mavi kapatıldı
return red_filter
def apply_green_filter(image):
green_filter = image.copy()
green_filter[:, :, 2] = 0 # Kırmızı kapatıldı
green_filter[:, :, 0] = 0 # Mavi kapatıldı
return green_filter
def apply_blue_filter(image):
blue_filter = image.copy()
blue_filter[:, :, 1] = 0 # Yeşil kapatıldı
blue_filter[:, :, 2] = 0 # Kırmızı kapatıldı
return blue_filter
def apply_sobel_x(image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
return cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize=5)
def apply_sobel_y(image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
return cv2.Sobel(gray, cv2.CV_64F, 0, 1, ksize=5)
def apply_laplace(image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
return cv2.Laplacian(gray, cv2.CV_64F)
def apply_contrast(image):
alpha = 1.5 # Kontrast katsayısı
beta = 0 # Parlaklık sabiti
return cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
def apply_brightness(image):
beta = 50 # Parlaklık artırma miktarı
return cv2.convertScaleAbs(image, beta=beta)
filters = {
"1": ("Grayscale", apply_grayscale),
"2": ("Sepia", apply_sepia),
"3": ("Negative", apply_negative),
"4": ("Gaussian Blur", apply_gaussian_blur),
"5": ("Median Blur", apply_median_blur),
"6": ("Edge Detection", apply_edge_detection),
"7": ("Sharpen", apply_sharpen),
"8": ("Emboss", apply_emboss),
"9": ("Pencil Sketch", apply_pencil_sketch),
"10": ("Bilateral Filter", apply_bilateral_filter),
"11": ("HSV Convert", apply_hsv),
"12": ("Red Filter", apply_red_filter),
"13": ("Green Filter", apply_green_filter),
"14": ("Blue Filter", apply_blue_filter),
"15": ("Sobel X", apply_sobel_x),
"16": ("Sobel Y", apply_sobel_y),
"17": ("Laplace", apply_laplace),
"18": ("Contrast Enhance", apply_contrast),
"19": ("Brightness Increase", apply_brightness)
}
def main():
image_path = "sample.jpg"
image = cv2.imread(image_path)
if image is None:
print("Görüntü yüklenemedi!")
return
print("\n📷 Uygulanabilir Filtreler:")
for key, (name, _) in filters.items():
print(f"{key}. {name}")
choices = input("\nUygulamak istediğiniz filtrelerin numaralarını virgülle ayırarak girin: ")
selected_filters = choices.split(",")
filtered_image = image.copy()
for choice in selected_filters:
choice = choice.strip()
if choice in filters:
_, filter_function = filters[choice]
filtered_image = filter_function(filtered_image)
print(f"✅ {filters[choice][0]} uygulandı.")
cv2.imshow("Orijinal", image)
cv2.imshow("Filtrelenmiş", filtered_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
if __name__ == "__main__":
main()
Özellikler
✔ Menü ile Kullanıcı Seçimi:
Kullanıcı, menüden birden fazla filtre seçebilir.
✔ Aynı Anda Birden Fazla Filtre:
Filtreler sırayla uygulanır.
✔ 20 Farklı Filtre:
Daha fazla efekt eklenmiştir.
✔ Canlı Önizleme:
Sonuçlar cv2.imshow()
ile gösterilir.
Örnek Kullanım
Çalıştırdıktan sonra:
Uygulamak istediğiniz filtrelerin numaralarını virgülle ayırarak girin: 1,3,6
✅ Grayscale uygulandı.
✅ Negative uygulandı.
✅ Edge Detection uygulandı.
Filtrelenmiş Görüntü Ekranda Açılır!