Spaces:
Runtime error
Runtime error
File size: 1,701 Bytes
fb41312 88de542 390ad5b 85df948 fb41312 6aa96a4 88de542 fb41312 88de542 390ad5b 90c0555 390ad5b 90c0555 390ad5b 90c0555 390ad5b 90c0555 390ad5b 88de542 390ad5b bd6297f 362f9c0 390ad5b 362f9c0 390ad5b bd6297f 88de542 390ad5b fb41312 882e081 fb41312 4d327e3 bd6297f 008f257 88de542 bcfe357 362f9c0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
import gradio as gr
import cv2
import json
import numpy as np
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 = 1200
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 = imgG.resize(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)
result = result.replace(' ', ', ')
print(result)
result = json.loads(result)
print(result)
return [img_path, json.dumps(result)]
examples = [
["./AAMED/python/002_0038.jpg"]
]
gr.Interface(
fn=detect_ellipses,
inputs=gr.Image(label="Upload image with ellipses", type="filepath"),
outputs=[
gr.Image(type="filepath", label="Detected ellipses"),
gr.Text(label="Detected data")
],
title=title,
examples=examples,
allow_flagging='never'
).launch(
debug=True,
server_name="0.0.0.0",
server_port=7860
) |