마우스 이벤트 콜백함수 등록 함수
cv2.setMouseCallback(windowName, onMouse, param=None) -> None
- windowName : 마우스 이벤트 처리를 수행할 창 이름.
- onMouse : 마우스 이벤트 처리를 위한 콜백 함수 이름. 마우스 이벤트 콜백 함수는 다음 형식을 따라야 함.
onMouse(event, x, y, flags, param) -> None
- param : 콜백 함수에 전달할 데이터
마우스 이벤트 처리 함수(콜백 함수) 형식
onMouse(event, x, y, flags, param) -> None
- event : 마우스 이벤트 종류. cv2.EVENT_로 시작하는 상수
- x : 마우스 이벤트가 발생한 x좌표
- y : 마우스 이벤트가 발생한 y좌표
- flags : 마우스 이벤트 발생 시 상태. cv2.EVENT_FLAG_로 시작하는 상수
- param : cv2.setMouseCallback() 함수에서 설정한 데이터
마우스 이벤트 처리 함수의 event 인자
마우스 이벤트 처리 함수의 flag 인자
마우스 그리기 이용한 예제
oldx = oldy = -1
def on_mouse(event, x, y, flags, param):
global oldx, oldy
if event == cv2.EVENT_LBUTTONDOWN:
oldx, oldy = x, y
else event == cv2.EVENT_MOUSEMOVE:
if flags & cv2.EVENT_FLAG_LBUTTON:
cv2.line(img, (oldx, oldy), (x, y), (0, 0, 255), 4, cv2.LINE_AA)
cv2.imshow('image', img)
oldx, oldy = x, y
img = np.ones((480, 640, 3), dtype=np.uint8) * 255
cv2.imshow('image', img)
cv2.setMouseCallback('image', on_mouse)
cv2.waitKey()
cv2.destroyAllWindows()