staghado commited on
Commit
14400f2
·
1 Parent(s): 7d6a2fc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -3
app.py CHANGED
@@ -23,7 +23,7 @@ def process_image(input_image, img_size, blur_kernel_size, desired_range):
23
  x_range, y_range = np.max(xs) - np.min(xs), np.max(ys) - np.min(ys)
24
  scale_x, scale_y = desired_range / x_range, desired_range / y_range
25
  xs = (xs - np.mean(xs)) * scale_x
26
- ys = (-ys + np.mean(ys)) * scale_y
27
 
28
  return xs, ys
29
 
@@ -81,6 +81,14 @@ def animate(frame, coefs, time, fig, ax, background, circles, circle_lines, draw
81
  ax.draw_artist(drawing)
82
 
83
  fig.canvas.blit(ax.bbox)
 
 
 
 
 
 
 
 
84
 
85
  def generate_animation(frames, coefs, img_size, desired_range, theta_points, coefficients):
86
  fig, ax, background, circles, circle_lines, drawing = setup_animation_env(img_size, desired_range, coefficients)
@@ -102,13 +110,15 @@ def fourier_transform_drawing(input_image, frames, coefficients, img_size, blur_
102
  # Saving the animation
103
  with tempfile.NamedTemporaryFile(delete=False, suffix='.mp4') as temp_file:
104
  anim.save(temp_file.name, fps=15)
105
- return Image.fromarray(np.zeros((img_size, img_size), dtype=np.uint8)), temp_file.name
 
 
106
 
107
  def setup_gradio_interface():
108
  interface = gr.Interface(
109
  fn=fourier_transform_drawing,
110
  inputs=[
111
- gr.Image(label="Input Image", sources=['upload'], type="pil"),
112
  gr.Slider(minimum=5, maximum=500, value=100, label="Number of Frames"),
113
  gr.Slider(minimum=1, maximum=500, value=50, label="Number of Coefficients"),
114
  gr.Number(value=224, label="Image Size (px)", precision=0),
 
23
  x_range, y_range = np.max(xs) - np.min(xs), np.max(ys) - np.min(ys)
24
  scale_x, scale_y = desired_range / x_range, desired_range / y_range
25
  xs = (xs - np.mean(xs)) * scale_x
26
+ ys = -(ys - np.mean(ys)) * scale_y
27
 
28
  return xs, ys
29
 
 
81
  ax.draw_artist(drawing)
82
 
83
  fig.canvas.blit(ax.bbox)
84
+
85
+ # Capture the frame as an image
86
+ fig.canvas.draw()
87
+ image = np.frombuffer(fig.canvas.tostring_rgb(), dtype='uint8')
88
+ image = image.reshape(fig.canvas.get_width_height()[::-1] + (3,))
89
+
90
+ yield Image.fromarray(image)
91
+
92
 
93
  def generate_animation(frames, coefs, img_size, desired_range, theta_points, coefficients):
94
  fig, ax, background, circles, circle_lines, drawing = setup_animation_env(img_size, desired_range, coefficients)
 
110
  # Saving the animation
111
  with tempfile.NamedTemporaryFile(delete=False, suffix='.mp4') as temp_file:
112
  anim.save(temp_file.name, fps=15)
113
+
114
+ for frame in range(frames):
115
+ yield from animate(frame, coefs, time, fig, ax, background, circles, circle_lines, drawing, draw_x, draw_y, coefs_static, theta), temp_file.name
116
 
117
  def setup_gradio_interface():
118
  interface = gr.Interface(
119
  fn=fourier_transform_drawing,
120
  inputs=[
121
+ gr.Image(label="Drawing Progress", sources=['upload'], type="pil"),
122
  gr.Slider(minimum=5, maximum=500, value=100, label="Number of Frames"),
123
  gr.Slider(minimum=1, maximum=500, value=50, label="Number of Coefficients"),
124
  gr.Number(value=224, label="Image Size (px)", precision=0),