aliicemill commited on
Commit
aa77ce2
·
verified ·
1 Parent(s): 3c0060a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +108 -105
app.py CHANGED
@@ -1,106 +1,109 @@
1
- import cv2
2
- import numpy as np
3
- import gradio as gr
4
-
5
- # Farklı filtre fonksiyonları
6
- def apply_gaussian_blur(frame):
7
- return cv2.GaussianBlur(frame, (15, 15), 0)
8
-
9
- def apply_sharpening_filter(frame):
10
- kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]])
11
- return cv2.filter2D(frame, -1, kernel)
12
-
13
- def apply_edge_detection(frame):
14
- return cv2.Canny(frame, 100, 200)
15
-
16
- def apply_invert_filter(frame):
17
- return cv2.bitwise_not(frame)
18
-
19
- def adjust_brightness_contrast(frame, alpha=1.0, beta=50):
20
- return cv2.convertScaleAbs(frame, alpha=alpha, beta=beta)
21
-
22
- def apply_grayscale_filter(frame):
23
- return cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
24
-
25
- def apply_sepia_filter(frame):
26
- sepia_filter = np.array([[0.272, 0.534, 0.131],
27
- [0.349, 0.686, 0.168],
28
- [0.393, 0.769, 0.189]])
29
- return cv2.transform(frame, sepia_filter)
30
-
31
- def apply_fall_filter(frame):
32
- fall_filter = np.array([[0.393, 0.769, 0.189],
33
- [0.349, 0.686, 0.168],
34
- [0.272, 0.534, 0.131]])
35
- return cv2.transform(frame, fall_filter)
36
-
37
- # Filtre uygulama fonksiyonu
38
- def apply_filter(filter_type, input_image=None, alpha=1.0, beta=50):
39
- if input_image is not None:
40
- frame = input_image
41
- else:
42
- cap = cv2.VideoCapture(0)
43
- ret, frame = cap.read()
44
- cap.release()
45
- if not ret:
46
- return "Web kameradan görüntü alınamadı"
47
-
48
- if filter_type == "Gaussian Blur":
49
- frame = apply_gaussian_blur(frame)
50
- elif filter_type == "Sharpen":
51
- frame = apply_sharpening_filter(frame)
52
- elif filter_type == "Edge Detection":
53
- frame = apply_edge_detection(frame)
54
- elif filter_type == "Invert":
55
- frame = apply_invert_filter(frame)
56
- elif filter_type == "Brightness/Contrast":
57
- frame = adjust_brightness_contrast(frame, alpha=alpha, beta=beta)
58
- elif filter_type == "Grayscale":
59
- frame = apply_grayscale_filter(frame)
60
- elif filter_type == "Sepia":
61
- frame = apply_sepia_filter(frame)
62
- elif filter_type == "Sonbahar":
63
- frame = apply_fall_filter(frame)
64
- return frame
65
-
66
- # Gradio arayüzü
67
- with gr.Blocks() as demo:
68
- gr.Markdown("# Web Kameradan Canlı Filtreleme")
69
-
70
- # Filtre seçenekleri
71
- filter_type = gr.Dropdown(
72
- label="Filtre Seçin",
73
- choices=["Gaussian Blur", "Sharpen", "Edge Detection", "Invert", "Brightness/Contrast", "Grayscale", "Sepia", "Sonbahar"],
74
- value="Gaussian Blur"
75
- )
76
-
77
- # Parlaklık ve Kontrast kontrolü
78
- alpha_slider = gr.Slider(0.5, 3.0, value=1.0, label="Kontrast (Alpha)")
79
- beta_slider = gr.Slider(-100, 100, value=50, label="Parlaklık (Beta)")
80
-
81
- # Görüntü yükleme alanı veya canlı kamera seçeneği
82
- with gr.Row():
83
- input_image = gr.Image(label="Resim Yükle", type="numpy")
84
- use_camera = gr.Checkbox(label="Kamerayı Kullan", value=False)
85
-
86
- # Çıktı için görüntü
87
- output_image = gr.Image(label="Filtre Uygulandı")
88
-
89
- # Filtre uygula butonu
90
- apply_button = gr.Button("Filtreyi Uygula")
91
-
92
- # Butona tıklanınca filtre uygulama fonksiyonu
93
- def run_filter(filter_type, input_image, alpha, beta, use_camera):
94
- if use_camera:
95
- cap = cv2.VideoCapture(0)
96
- ret, frame = cap.read()
97
- cap.release()
98
- if not ret:
99
- return "Web kameradan görüntü alınamadı"
100
- input_image = frame
101
- return apply_filter(filter_type, input_image, alpha, beta)
102
-
103
- apply_button.click(fn=run_filter, inputs=[filter_type, input_image, alpha_slider, beta_slider, use_camera], outputs=output_image)
104
-
105
- # Gradio arayüzünü başlat
 
 
 
106
  demo.launch()
 
1
+ import cv2
2
+ import numpy as np
3
+ import gradio as gr
4
+
5
+ # Farklı filtre fonksiyonları
6
+ def apply_gaussian_blur(frame):
7
+ return cv2.GaussianBlur(frame, (15, 15), 0)
8
+
9
+ def apply_sharpening_filter(frame):
10
+ kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]])
11
+ return cv2.filter2D(frame, -1, kernel)
12
+
13
+ def apply_edge_detection(frame):
14
+ return cv2.Canny(frame, 100, 200)
15
+
16
+ def apply_invert_filter(frame):
17
+ return cv2.bitwise_not(frame)
18
+
19
+ def adjust_brightness_contrast(frame, alpha=1.0, beta=50):
20
+ return cv2.convertScaleAbs(frame, alpha=alpha, beta=beta)
21
+
22
+ def apply_grayscale_filter(frame):
23
+ return cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
24
+
25
+ def apply_sepia_filter(frame):
26
+ sepia_filter = np.array([[0.272, 0.534, 0.131],
27
+ [0.349, 0.686, 0.168],
28
+ [0.393, 0.769, 0.189]])
29
+ return cv2.transform(frame, sepia_filter)
30
+
31
+ def apply_fall_filter(frame):
32
+ fall_filter = np.array([[0.393, 0.769, 0.189],
33
+ [0.349, 0.686, 0.168],
34
+ [0.272, 0.534, 0.131]])
35
+ return cv2.transform(frame, fall_filter)
36
+
37
+ # Filtre uygulama fonksiyonu
38
+ def apply_filter(filter_type, input_image=None, alpha=1.0, beta=50):
39
+ if input_image is not None:
40
+ frame = input_image
41
+ else:
42
+ cap = cv2.VideoCapture(0)
43
+ ret, frame = cap.read()
44
+ cap.release()
45
+ if not ret:
46
+ return "Web kameradan görüntü alınamadı"
47
+
48
+ # Filtre türüne göre işlem yap
49
+ if filter_type == "Gaussian Blur":
50
+ frame = apply_gaussian_blur(frame)
51
+ elif filter_type == "Sharpen":
52
+ frame = apply_sharpening_filter(frame)
53
+ elif filter_type == "Edge Detection":
54
+ frame = apply_edge_detection(frame)
55
+ elif filter_type == "Invert":
56
+ frame = apply_invert_filter(frame)
57
+ elif filter_type == "Brightness/Contrast":
58
+ # Burada alpha ve beta değerlerini kullanıyoruz
59
+ frame = adjust_brightness_contrast(frame, alpha=alpha, beta=beta)
60
+ elif filter_type == "Grayscale":
61
+ frame = apply_grayscale_filter(frame)
62
+ elif filter_type == "Sepia":
63
+ frame = apply_sepia_filter(frame)
64
+ elif filter_type == "Sonbahar":
65
+ frame = apply_fall_filter(frame)
66
+
67
+ return frame
68
+
69
+ # Gradio arayüzü
70
+ with gr.Blocks() as demo:
71
+ gr.Markdown("# Web Kameradan Canlı Filtreleme")
72
+
73
+ # Filtre seçenekleri
74
+ filter_type = gr.Dropdown(
75
+ label="Filtre Seçin",
76
+ choices=["Gaussian Blur", "Sharpen", "Edge Detection", "Invert", "Brightness/Contrast", "Grayscale", "Sepia", "Sonbahar"],
77
+ value="Gaussian Blur"
78
+ )
79
+
80
+ # Parlaklık ve Kontrast kontrolü
81
+ alpha_slider = gr.Slider(0.5, 3.0, value=1.0, label="Kontrast (Alpha)")
82
+ beta_slider = gr.Slider(-100, 100, value=50, label="Parlaklık (Beta)")
83
+
84
+ # Görüntü yükleme alanı veya canlı kamera seçeneği
85
+ with gr.Row():
86
+ input_image = gr.Image(label="Resim Yükle", type="numpy")
87
+ use_camera = gr.Checkbox(label="Kamerayı Kullan", value=False)
88
+
89
+ # Çıktı için görüntü
90
+ output_image = gr.Image(label="Filtre Uygulandı")
91
+
92
+ # Filtre uygula butonu
93
+ apply_button = gr.Button("Filtreyi Uygula")
94
+
95
+ # Butona tıklanınca filtre uygulama fonksiyonu
96
+ def run_filter(filter_type, input_image, alpha, beta, use_camera):
97
+ if use_camera:
98
+ cap = cv2.VideoCapture(0)
99
+ ret, frame = cap.read()
100
+ cap.release()
101
+ if not ret:
102
+ return "Web kameradan görüntü alınamadı"
103
+ input_image = frame
104
+ return apply_filter(filter_type, input_image, alpha, beta)
105
+
106
+ apply_button.click(fn=run_filter, inputs=[filter_type, input_image, alpha_slider, beta_slider, use_camera], outputs=output_image)
107
+
108
+ # Gradio arayüzünü başlat
109
  demo.launch()