eienmojiki commited on
Commit
f90960c
·
verified ·
1 Parent(s): b4e799c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -18
app.py CHANGED
@@ -30,6 +30,7 @@ def create_app():
30
  for filter_name, group in filter_groups.items():
31
  for component in group.children: # Iterate over children of the group
32
  control_components.append(component) # Collect sliders for event handling
 
33
 
34
  with gr.Column():
35
  output_image = gr.Image(label="Filtered Image")
@@ -43,20 +44,17 @@ def create_app():
43
  return updates
44
 
45
 
46
- # Xử lý ảnh real-time
47
- def process(*args, **kwargs):
48
- image = args[0] if len(args) > 0 else None
49
- filter_name = args[1] if len(args) > 1 else "Original" # Default filter
50
  if image is None:
51
  return None
52
-
53
  try:
54
  image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
55
- params = {
56
- k.split('_', 1)[1]: v
57
- for k, v in kwargs.items()
58
- if k.startswith(filter_name)
59
- }
60
 
61
  processed = registry.filters[filter_name](image, **params)
62
 
@@ -77,14 +75,13 @@ def create_app():
77
  outputs=list(filter_groups.values()) # Pass list of groups as outputs
78
  )
79
 
80
- input_components_process = [input_image, filter_select] + control_components
81
- for component in [input_image, filter_select] + control_components: # Attach change to sliders
82
- component.change(
83
- process,
84
- inputs=input_components_process,
85
- outputs=output_image,
86
- show_progress=False
87
- )
88
 
89
  return app
90
 
 
30
  for filter_name, group in filter_groups.items():
31
  for component in group.children: # Iterate over children of the group
32
  control_components.append(component) # Collect sliders for event handling
33
+ apply_button = gr.Button("Apply Filter") # Add Apply button
34
 
35
  with gr.Column():
36
  output_image = gr.Image(label="Filtered Image")
 
44
  return updates
45
 
46
 
47
+ # Xử lý ảnh khi button click
48
+ def process(image, filter_name, *args): # Update process function to take image, filter_name and *args
 
 
49
  if image is None:
50
  return None
51
+
52
  try:
53
  image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
54
+ params = {}
55
+ param_names = list(registry.params_map.get(filter_name, {}).keys())
56
+ for i, param_name in enumerate(param_names):
57
+ params[param_name] = args[i] # Get parameter values from args
 
58
 
59
  processed = registry.filters[filter_name](image, **params)
60
 
 
75
  outputs=list(filter_groups.values()) # Pass list of groups as outputs
76
  )
77
 
78
+ input_components = [input_image, filter_select] + control_components # Input components for button click
79
+ apply_button.click( # Attach click event to Apply button
80
+ process,
81
+ inputs=input_components, # Use all input components
82
+ outputs=output_image,
83
+ show_progress=False
84
+ )
 
85
 
86
  return app
87