import gradio as gr import numpy as np from scipy.ndimage import convolve1d def flip_lightness(a: np.ndarray): return -1*a + 255 def scale_lightness(X: np.ndarray, min:float = 0, max:float = 255): X_std = (X - X.min()) / (X.max() - X.min()) return np.clip(X_std * (max - min) + min, min, max) def return_sketch_array(sketch): a = np.asarray(sketch) a = flip_lightness(a) a = scale_lightness(a, 0, 1) sidelobes_filter = np.array([-0.2,0.7,-0.2]) conv = convolve1d(a, sidelobes_filter, mode="constant", axis=0) conv = scale_lightness(conv).astype(int) img = flip_lightness(a) img = scale_lightness(img).astype(int) return img, conv sketch = gr.Sketchpad(shape=(27,27), brush_radius=1, invert_colors=False) iface = gr.Interface( fn=return_sketch_array, inputs=[sketch], outputs=["image", "numpy"], live=True, ) iface.launch()