n1kkqt
Add Demo
55f9eaa
import numpy as np
import cv2
import glob
import gradio as gr
def shi_tomasi(image, max_corners=100, min_quality=0.01, min_dist=10):
gray_img = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
corners_img = cv2.goodFeaturesToTrack(gray_img,max_corners, min_quality, min_dist)
corners_img = np.int0(corners_img)
for corners in corners_img:
x,y = corners.ravel()
cv2.circle(image,(x,y),3,[0,255,0],-1)
return image
demo = gr.Interface(
shi_tomasi,
inputs=[gr.inputs.Image(type="numpy"),
gr.Slider(0, 2000, value=100, step=1, label='Maximum Number of Corners'),
gr.Slider(0.01, 0.99, value=0.01, step=0.01, label='Minimum Corner Quality'),
gr.Slider(0, 100, value=10, step=1, label='Minumum Euclidean Distance Between Corners'),
],
outputs=gr.outputs.Image(type="numpy"),
title="Corner Detection",
description="Shi-Tomasi Corner Detection",
examples=list(map(lambda x: [x, 100, 0.01, 10], glob.glob('./examples/*.jpg'))),
allow_flagging="never",
)
if __name__ == "__main__":
demo.launch()