マウスイベント

2015/8/10

Python2.7.6, OpenCV3.0

import cv2
import sys

img=cv2.imread('test.png')

windowName="mouse"
cv2.namedWindow(windowName)

def onMouse(event, x, y, flags, param):
    print(x,y)
    if event == cv2.EVENT_LBUTTONDOWN:
        center=(x,y)
        radius=10
        color=(255,255,0)
        cv2.circle(img,center,radius,color)

    cv2.imshow(windowName,img)


cv2.setMouseCallback(windowName,onMouse)

cv2.imshow(windowName,img)
cv2.waitKey(0)
cv2.destroyAllWindows()

event

  • CV_EVENT_MOUSEMOVE マウスが移動した
  • CV_EVENT_LBUTTONDOWN 左ボタンが押された
  • CV_EVENT_RBUTTONDOWN 右ボタンが押された
  • CV_EVENT_MBUTTONDOWN 中ボタンが押された
  • CV_EVENT_LBUTTONUP 左ボタンが離された
  • CV_EVENT_RBUTTONUP 右ボタンが離された
  • CV_EVENT_MBUTTONUP 中ボタンが離された
  • CV_EVENT_LBUTTONDBLCLK 左ボタンがダブルクリックされた
  • CV_EVENT_RBUTTONDBLCLK 右ボタンがダブルクリックされた
  • CV_EVENT_MBUTTONDBLCLK 中ボタンがダブルクリックされた

flags

  • CV_EVENT_FLAG_LBUTTON 左ボタンが押されている
  • CV_EVENT_FLAG_RBUTTON 右ボタンが押されている
  • CV_EVENT_FLAG_MBUTTON 中ボタンが押されている
  • CV_EVENT_FLAG_CTRLKEY Ctrl キーが押されている
  • CV_EVENT_FLAG_SHIFTKEY Shift キーが押されている
  • CV_EVENT_FLAG_ALTKEY Alt キーが押されている


OpenCVで遊ぼう!: python-opencv tutorial(5)
http://playwithopencv.blogspot.jp/2012/07/python-opencv-tutorial5.html

ユーザインタフェース >> opencv 2.2 documentation
http://opencv.jp/opencv-2svn/py/highgui_user_interface.html#setmousecallback

Mouse as a Paint-Brush http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_gui/py_mouse_handling/py_mouse_handling.html