Spaces:
Runtime error
Runtime error
File size: 1,973 Bytes
fb41312 88de542 390ad5b 85df948 d8fbaf2 4a0cbf8 fb41312 6aa96a4 88de542 fb41312 88de542 c706d22 390ad5b 90c0555 390ad5b 9f54a3d 390ad5b 0089432 390ad5b 0089432 390ad5b 88de542 01763a3 390ad5b bd6297f 362f9c0 03cc5b5 4386942 390ad5b bd6297f 03cc5b5 88de542 03cc5b5 fb41312 882e081 d041661 c70d8ad d8fbaf2 fb41312 4d327e3 bd6297f bb6f75b ff771ad 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 70 71 72 73 74 75 76 77 78 79 80 81 |
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(ammed_size - ih)
imgG = cv2.copyMakeBorder(imgG, ipad, ipad, 0, 0, cv2.BORDER_REPLICATE)
else:
ipad = int(ammed_size - iw)
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)
print(ammed_size, iw, ih, imgG.shape)
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
) |