Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import cv2 | |
| import json | |
| import numpy as np | |
| import glob2 as glob | |
| from PIL import Image | |
| from pyAAMED import pyAAMED | |
| title = """ | |
| <h1>Arc Adjacency Matrix based Fast Ellipse Detection</h1> | |
| <a href="https://github.com/Li-Zhaoxi/AAMED">Gitub</a> | |
| """ | |
| def detect_ellipses(img_path): | |
| imgC = cv2.imread(img_path) | |
| imgG = cv2.cvtColor(imgC, cv2.COLOR_BGR2GRAY) | |
| ammed_size = 600 | |
| iheight, iwidth = imgG.shape | |
| imax = max(iheight, iwidth) | |
| iscale = ammed_size / imax | |
| is_landscape = iwidth >= iheight | |
| if is_landscape: | |
| iw = imax * iscale | |
| ih = iheight * iscale | |
| else: | |
| iw = iwidth * iscale | |
| ih = imax * iscale | |
| imgG = cv2.resize(imgG, (int(iw), int(ih))) | |
| if is_landscape: | |
| ipad = int((imax - iheight) / 2 * iscale) | |
| imgG = cv2.copyMakeBorder(imgG, ipad, ipad, 0, 0, cv2.BORDER_REPLICATE) | |
| else: | |
| ipad = int((imax - iwidth) / 2 * iscale) | |
| imgG = cv2.copyMakeBorder(imgG, 0, 0, ipad, ipad, cv2.BORDER_REPLICATE) | |
| aamed = pyAAMED(ammed_size, ammed_size) | |
| aamed.setParameters(3.1415926/3, 3.4, 0.77) | |
| result = aamed.run_AAMED(imgG) | |
| print(result) | |
| """ | |
| if result != "": | |
| result = ",".join(filter(lambda s: s != "", result.split(" "))) | |
| print(result) | |
| result = json.loads(result) | |
| print(result) | |
| """ | |
| return [Image.fromarray(imgG), result] | |
| examples = [ | |
| ["./AAMED/python/002_0038.jpg"] | |
| ] | |
| test_files = glob.glob('./examples/*.jpg') + glob.glob('./examples/*.png') | |
| for f in test_files: | |
| examples = examples + [[f]] | |
| gr.Interface( | |
| fn=detect_ellipses, | |
| inputs=gr.Image(label="Upload image with ellipses", type="filepath"), | |
| outputs=[ | |
| gr.Image(type="pil", label="Detected ellipses"), | |
| gr.Textbox(label="Detected ellipses") | |
| ], | |
| title=title, | |
| examples=examples, | |
| allow_flagging='never' | |
| ).launch( | |
| debug=True, | |
| server_name="0.0.0.0", | |
| server_port=7860 | |
| ) |