Exemplo n.º 1
0
 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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
    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)
Exemplo n.º 6
0
    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
Exemplo n.º 7
0
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)