コード例 #1
0
def find_main_countour(image):
    cnts, hierarchy = cv.findContours(image, cv.RETR_CCOMP, cv.CHAIN_APPROX_SIMPLE)
    C = None
    if cnts is not None and len(cnts) > 0:
         C = max(cnts, key = cv.contourArea)
    if C is None:
        return None, None
    rect = cv.minAreaRect(C)
    box = cv.boxPoints(rect)
    box = np.int0(box)
    box = geom.order_box(box)
    return C, box
コード例 #2
0
        cv2.THRESH_BINARY_INV)  # invert the pixels of the image frame

    # im2,contours,hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    # im2,contours,hierarchy = cv2.findContours(th2, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    contours, hierarchy = cv2.findContours(th2, cv2.RETR_TREE,
                                           cv2.CHAIN_APPROX_SIMPLE)
    global_contours = copy.deepcopy(contours)

    C = None
    if contours is not None and len(contours) > 0:
        C = max(contours, key=cv2.contourArea)
    if C is not None:
        rect = cv2.minAreaRect(C)
        box = cv2.boxPoints(rect)
        box = np.int0(box)
        box = geom.order_box(box)
        global_box = copy.deepcopy(box)
        p1, p2 = geom.calc_box_vector(box)

        (angle, shift) = (0, 0)
        (gc_x, gc_y) = (0, 0)
        if DIRECTION_STATE == bconf.DIRECTION.LEFT:
            angle = geom.get_horz_angle(p1, p2, W, H)
            shift = geom.get_vert_shift(p1[0], H)

            if angle < 45:
                DIRECTION_STATE = bconf.DIRECTION.DOWN
            elif angle > 135:
                DIRECTION_STATE = bconf.DIRECTION.UP

            gc_x = centerPos[0] - crop_LRFB[0]