def create_mask(frame, hsv): mask = utils.hsv_mask(frame, hsv) # create a cross kernel mask = utils.morphology( mask, np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]], dtype=np.uint8)) mask = cv2.threshold(mask, 250, 255, 0)[1] return mask
def create_mask(self, frame, hsv): mask = utils.hsv_mask(frame, hsv) mask = utils.morphology(mask, self.kernel_big) mask = utils.binary_thresh(mask, 127) mask = self.edge_detection(frame, mask) mask = self.separate_cubes(mask) return mask
def create_mask(self, frame, hsv): """ :param frame: the frame to process :param hsv: JSON file :return: the mask of the target """ mask = utils.hsv_mask(frame, hsv) # create a cross kernel mask = utils.morphology(mask, self.kernel_big) mask = cv2.threshold(mask, 127, 255, 0)[1] return mask
def create_mask(self, frame, hsv): mask = utils.hsv_mask(frame, hsv) mask = utils.binary_thresh(mask, 127) edge = self.edge_detection(frame, mask) mask = utils.bitwise_not(mask, edge) mask = utils.erode(mask, self.kernel_big) mask = utils.closing_morphology(mask, kernel_d=self.kernel_small, kernel_e=self.kernel_small, itr=3) return mask
def update_pic(update): l_filter = np.array([cv2.getTrackbarPos('L:H', 'picker'), cv2.getTrackbarPos('L:S', 'picker'), cv2.getTrackbarPos('L:V', 'picker')]) u_filter = np.array([cv2.getTrackbarPos('U:H', 'picker'), cv2.getTrackbarPos('U:S', 'picker'), cv2.getTrackbarPos('U:V', 'picker')]) print(l_filter) print(u_filter) mask = utils.hsv_mask(img, (l_filter, u_filter)) mask = cv2.erode(mask, cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)), iterations = cv2.getTrackbarPos('Erode iter:', 'picker')) mask = cv2.dilate(mask, cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)), iterations = cv2.getTrackbarPos('Dilate iter:', 'picker')) cnts, hi = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) out = img.copy() out = cv2.drawContours(out, cnts, -1, (0, 255, 0), 10) out = cv2.resize(out, (0, 0), fx=0.3, fy=0.3) cv2.imshow('picker', out)
def mask(frame): #start mask mask = utils.hsv_mask(frame, rf) mask = cv2.threshold(mask, 127, 225, 0)[1] mask = cv2.erode(mask, kernel=np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]], dtype=np.uint8), iterations=1) mask = cv2.dilate(mask, kernel=np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]], dtype=np.uint8), iterations=1) return mask
print("Concating panorama...") while rtn: rtn, img = video.read() if rtn: out = concat_pic(out, img[roi[1]:roi[1] + roi[3], roi[0]:roi[0] + roi[2]]) if count % 10 == 0: cv2.imshow("cv", out) cv2.waitKey(1) count += 1 cv2.imwrite('out.jpg', out) cv2.destroyWindow("cv") print("HSV filtering...") mask = utils.hsv_mask(out, (l_filter, u_filter)) mask = cv2.erode(mask, cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)), iterations=erode_iter) mask = cv2.dilate(mask, cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)), iterations=dilate_iter) cnts, hi = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) out2 = out.copy() out2 = cv2.drawContours(out2, cnts, -1, (0, 0, 255), 10) # out2 = cv2.resize(out2, (0, 0), fx=0.3, fy=0.3) cv2.imwrite('out2.jpg', out2) out2 = cv2.resize(out2, (0, 0), fx=0.6, fy=0.6) cv2.imshow('cvout', out2) cv2.waitKey(0)