r_screen_detect.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:pdc-project 作者: ealain 项目源码 文件源码
def main():
    '''
    Test screen_position
    '''
    cap = cv2.VideoCapture(0)
    while(True):
        ret, frame = cap.read()
        mask = detect_color(frame)
        cv2.imshow('frame', frame)
        cv2.imshow('mask', mask)
        masked_frame = cv2.bitwise_and(frame, frame, mask=mask)
        imgray = cv2.cvtColor(masked_frame, cv2.COLOR_BGR2GRAY)
        contours, hierarchy = cv2.findContours(imgray,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
        contours = sorted(contours, key=lambda x:len(x), reverse=True)
        i = 0
        while(i < len(contours)):
            x,y,w,h = cv2.boundingRect(contours[i])
            rect_cnt = np.array([[[x, y]], [[x+w, y]], [[x+w, y+h]], [[x, y+h]]], dtype=np.int32)
            rect_cnt_area = cv2.contourArea(rect_cnt)
            if(cv2.contourArea(contours[i]) > VALID_AREA_RATIO * rect_cnt_area and \
                    rect_cnt_area > VALID_MIN_AREA and \
                    rect_cnt_area < VALID_MAX_AREA):
                cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
                break
            else:
                i += 1

        cv2.imshow('Contours', frame)
        if cv2.waitKey(1) & 0xFF == 27:
            break

    print(get_screen_gray_level(masked_frame))
    cap.release()
    cv2.destroyAllWindows()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号