Skip to content

Cv2.setMouseCallback

마우스 콜백 설정

Example

cv2.imshow("draw", src)
cv2.setMouseCallback("draw", mouse_event, src)
cv2.waitKey()

Callback example

def mouse_event(event, x, y, flags, param):
    global radius

    if event == cv2.EVENT_FLAG_LBUTTON:    
        cv2.circle(param, (x, y), radius, (255, 0, 0), 2)
        cv2.imshow("draw", src)

    elif event == cv2.EVENT_MOUSEWHEEL:
        if flags > 0:
            radius += 1
        elif radius > 1:
            radius -= 1
  • event - 윈도우에서 발생하는 이벤트를 의미합니다.
  • x, y - 는 마우스의 좌표를 의미합니다.
  • flags - event와 함께 활용되는 역할로 특수한 상태를 확인하는 용도입니다.
  • param - 마우스 콜백 설정 함수에서 함께 전달되는 사용자 정의 데이터를 의미합니다.

Events

  • EVENT_MOUSEMOVE - 마우스 포인터가 윈도우 위에서 움직일 때
  • EVENT_LBUTTONDOWN - 마우스 왼쪽 버튼을 누를 때
  • EVENT_MBUTTONDOWN - 마우스 가운데 버튼을 누를 때
  • EVENT_RBUTTONDOWN - 마우스 오른쪽 버튼을 누를 때
  • EVENT_LBUTTONUP - 마우스 왼쪽 버튼을 뗄 때
  • EVENT_MBUTTONUP - 마우스 가운데 버튼을 뗄 때
  • EVENT_RBUTTONUP - 마우스 오른쪽 버튼을 뗄 때
  • EVENT_LBUTTONDBLCLK - 마우스 왼쪽 버튼을 더블 클릭할 때
  • EVENT_MBUTTONDBLCLK - 마우스 가운데 버튼을 더블 클릭할 때
  • EVENT_RBUTTONDBLCLK - 마우스 오른쪽 버튼을 더블 클릭할 때
  • EVENT_MOUSEWHEEL - 마우스 상하 스크롤을 사용할 때
  • EVENT_MOUSEHWHEEL - 마우스 좌우 스크롤을 사용할 때

Flags

  • EVENT_FLAG_LBUTTON - 마우스 왼쪽 버튼이 눌러져 있음
  • EVENT_FLAG_MBUTTON - 마우스 가운데 버튼이 눌러져 있음
  • EVENT_FLAG_RBUTTON - 마우스 오른쪽 버튼이 눌러져 있음
  • EVENT_FLAG_CTRLKEY - 컨트롤(Ctrl) 키가 눌러져 있음
  • EVENT_FLAG_SHIFTKEY - 쉬프트(Shift) 키가 눌러져 있음
  • EVENT_FLAG_ALTKEY - 알트(Alt) 키가 눌러져 있음
  • flags > 0 - 마우스 스크롤 이벤트의 윗 방향 또는 오른쪽 방향
  • flags < 0 - 마우스 스크롤 이벤트의 아랫 방향 또는 왼쪽 방향

Favorite site