import numpy as np import cv2 img = cv2.imread('data/1746025823_segment.png') kernel = np.ones((3,3),np.uint8) h, w = img.shape[0], img.shape[1] seedpnt = (int(w/2), int(h/2)) difres = 10 # convert to grayscale img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # ballon_mask = img - 127 ballon_mask = 127 - img ballon_mask = img ballon_mask = cv2.dilate(ballon_mask, kernel,iterations = 1) # ballon_area, _, _, rect = cv2.floodFill(ballon_mask, mask=None, seedPoint=seedpnt, flags=4, newVal=(30), loDiff=(difres, difres, difres), upDiff=(difres, difres, difres)) ballon_mask = 30 - ballon_mask retval, ballon_mask = cv2.threshold(ballon_mask, 1, 255, cv2.THRESH_BINARY) ballon_mask = cv2.bitwise_not(ballon_mask, ballon_mask) # box_kernel = int(np.sqrt(ballon_area) / 30) # if box_kernel > 1: # box_kernel = np.ones((box_kernel,box_kernel),np.uint8) # ballon_mask = cv2.dilate(ballon_mask, box_kernel, iterations = 1) # ballon_mask = cv2.erode(ballon_mask, box_kernel, iterations = 1) cv2.imshow('ballon_mask', ballon_mask) #cv2.imshow('img', img) cv2.waitKey(0)