import gradio as gr import cv2 import numpy as np def segment(img): webcam = gr.inputs.Image(shape=(640, 480), source="webcam") # Read the original image #img = cv2.imread('test.jpg') # Display original image #cv2.imshow('Original', img) #cv2.waitKey(0) # Convert to graycsale img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Blur the image for better edge detection img_blur = cv2.GaussianBlur(img_gray, (3,3), 0) # Sobel Edge Detection sobelx = cv2.Sobel(src=img_blur, ddepth=cv2.CV_64F, dx=1, dy=0, ksize=5) # Sobel Edge Detection on the X axis sobely = cv2.Sobel(src=img_blur, ddepth=cv2.CV_64F, dx=0, dy=1, ksize=5) # Sobel Edge Detection on the Y axis sobelxy = cv2.Sobel(src=img_blur, ddepth=cv2.CV_64F, dx=1, dy=1, ksize=5) # Combined X and Y Sobel Edge Detection # Display Sobel Edge Detection Images cv2.imshow('Sobel X', sobelx) cv2.waitKey(0) cv2.imshow('Sobel Y', sobely) cv2.waitKey(0) cv2.imshow('Sobel X Y using Sobel() function', sobelxy) cv2.waitKey(0) # Canny Edge Detection edges = cv2.Canny(image=img_blur, threshold1=100, threshold2=200) # Canny Edge Detection # Display Canny Edge Detection Image webcam = gr.inputs.Image(shape=(640, 480), source="webcam") webapp = gr.interface.Interface(fn=edges, inputs=webcam, outputs="image") webapp.launch()