http://blog.naver.com/PostView.nhn?blogId=samsjang&logNo=220659310860&categoryNo=0&parentCategoryNo=49&viewDate=&currentPage=1&postListTopCurrentPage=1&from=search

이거 예제따라한건데

캠이 없어서 영상입력부분을 조금 바꿨거든 윈도우고 바탕화면에 1.mp4 잘있고 \대신 /쓴건 다른예제에선 잘먹힘


import numpy as np

import cv2

col, width, row, height, = -1, -1, -1, -1

frame = None

frame2 = None

imputmode = False

rectangle = None

roi_hist = None


def onMouse(event, x, y, flags, param):

    global col, width, row, height, frame, frame2, inputmode

    global rectangle, roi_fist, trackWindow


    if imputmode:

        if event == cv.EVENT_LBUTTONDOWN:

            rectangle = True

            col, row = x, y


        elif event == cv2.EVENT_MOUSEMOVE:

            if rectangle:

                frame = frame2.copy()

                cv2.rectangle(frame, (col, row), (x, y), (0, 255, 0), 2)

                cv2.imshow('frame', frame)


        elif event == cv2.EVENT_LBUTTONUP:

            inputmode = False

            rectangle = False

            cv2.rectangle(frame, (col, row), (x, y), (0, 255, 0), 2)

            height, width = abs(row-y), abs(col-x)

            trackWindow = (col, row, width, height)

            roi = frame[row:row+height, col:col+width]

            roi = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)

            roi_hist = cv2.calcHist([roi], [0], None, [180], [0, 180])

            cv2.normalize(roi_hist, roi_hist, 0, 255, cv2.NORM_MINMAX)

    return


def camShift():

    global frame, frame2, inputmode, trackWindow, roi_hist, out


    try:

        cap = cv2.VideoCapture('C:/Users/wildc/Desktop/1.mp4')

        cap.set(3, 480)

        cap.set(4, 320)

    except:

        print("영상인식불가")

        return


    ret, frame = cap.read()


    cv2.namedWindow('frame')

    cv2.setMouseCallback('frame', onMouse, param=(frame, frame2))


    termination = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 1)


    while True:

        ret, frame = cap.read()

        if not ret:

            break


        if trackWindow is not None:

            hsv = cv2.cvColor(frame, cv2.COLOR_BGR2HSV)

            dst = cv2.calcBackProject([hsv], [0], roi_hist, [0, 180], 1)

            ret, trackWindow = cv2.CamShift(dst, trackWindow, termination)


            pts = cv2.boxPoint(ret)

            pts = np.int0(pts)

            cv2.polylines(frame, [pts], True, (0, 255, 0), 2)


        cv2.imshow('frame', frame)


        k = cv2.waitKey(60) & 0xFF

        if k == 27:

            break


        if k == ord('i'):

            print('추적할영역을 지정하고 아무키나 누르세요')

            inputmode = True

            frame2 = frame.copy()


            while inputmode:

                cv2.imshow('frame', frame)

                cv2.waitKey(0)


    cap.release()

    cv2.destroyAllWindows()

    5

camShift()



아렇게 창 최소화되서뜨고 전체화면 누르면

이케 회색임

뭐가잘못된거임..?