| | import gradio as gr |
| | import numpy as np |
| |
|
| | def get_mask(im): |
| | """ |
| | im: ImageEditor 返回的数据结构 |
| | """ |
| | layers = im.get("layers", []) |
| | if not layers: |
| | return "No drawing yet" |
| |
|
| | |
| | layer0 = layers[0] |
| | mask = layer0 > 0 |
| |
|
| | coords = np.argwhere(mask) |
| | print("Mask shape:", mask.shape) |
| | print("Number of drawn pixels:", np.sum(mask)) |
| | print("Coordinates of drawn pixels (y, x):", coords) |
| |
|
| | return mask[...,3].astype(np.uint8)*255 |
| |
|
| | with gr.Blocks() as demo: |
| | with gr.Row(): |
| | im_editor = gr.ImageEditor(type="numpy", crop_size="1:1") |
| | mask_preview = gr.Image() |
| | |
| | im_editor.change(get_mask, inputs=im_editor, outputs=mask_preview) |
| |
|
| | if __name__ == "__main__": |
| | demo.launch() |
| |
|