File size: 1,079 Bytes
5fc3b2a
7df068d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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

import cv2
import numpy as np
import gradio as gr

def detect_sky(image_path):

  img = cv2.imread(image_path)

  hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

  h, s, v = cv2.split(hsv_img)
  v = cv2.equalizeHist(v)
  mer_img = cv2.merge((h, s, v))

  iLow = np.array([100, 43, 46])
  iHigh = np.array([124, 255, 255])

  rng_img = cv2.inRange(mer_img, iLow, iHigh)

  kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (10, 10))
  erode_img = cv2.erode(rng_img, kernel)
  dlt_img = cv2.dilate(erode_img, kernel)

  ret, mask = cv2.threshold(dlt_img, 150, 255, cv2.THRESH_BINARY)
  notmask = cv2.bitwise_not(mask)
  frontpic = cv2.bitwise_and(img, img, mask=notmask)
   
  # Convert the image to RGB format (Gradio expects RGB)
  result_rgb = cv2.cvtColor(frontpic, cv2.COLOR_BGR2RGB)

    # Encode the image as bytes
    #_, result_bytes = cv2.imencode('.png', result_rgb)
    # Convert bytes to a NumPy array
  return result_rgb
  

demo = gr.Interface(fn=detect_sky,inputs=gr.Image(type="filepath"),outputs="image")

# Launch the Gradio interface in Colab
demo.launch()