import cv2
events = [ i for i in dir ( cv2) if 'EVENT' in i]
print ( events)
['EVENT_FLAG_ALTKEY', 'EVENT_FLAG_CTRLKEY', 'EVENT_FLAG_LBUTTON', 'EVENT_FLAG_MBUTTON', 'EVENT_FLAG_RBUTTON', 'EVENT_FLAG_SHIFTKEY', 'EVENT_LBUTTONDBLCLK', 'EVENT_LBUTTONDOWN', 'EVENT_LBUTTONUP', 'EVENT_MBUTTONDBLCLK', 'EVENT_MBUTTONDOWN', 'EVENT_MBUTTONUP', 'EVENT_MOUSEHWHEEL', 'EVENT_MOUSEMOVE', 'EVENT_MOUSEWHEEL', 'EVENT_RBUTTONDBLCLK', 'EVENT_RBUTTONDOWN', 'EVENT_RBUTTONUP']
import cv2
import numpy as np
def draw_circle ( event, x, y, flags, param) :
if event == cv2. EVENT_LBUTTONDBLCLK:
cv2. circle( img, ( x, y) , 100 , ( 255 , 0 , 0 ) , - 1 )
img = np. zeros( ( 512 , 512 , 3 ) , np. uint8)
cv2. namedWindow( 'image' )
cv2. setMouseCallback( 'image' , draw_circle)
while ( 1 ) :
cv2. imshow( 'image' , img)
if cv2. waitKey( 20 ) & 0xFF == 27 :
break
cv2. destroyAllWindows( )
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
<ipython-input-1-447ad1ab3ad4> in <module>()
15 while(1):
16 cv2.imshow('image',img)
---> 17 if cv2.waitKey(20) & 0xFF == 27:
18 break
19 cv2.destroyAllWindows()
KeyboardInterrupt:
import cv2
import numpy as np
drawing = False
mode= True
ix, iy = - 1 , - 1
def draw_circle ( event, x, y, flags, param) :
global ix, iy, drawing, mode
if event == cv2. EVENT_LBUTTONDOWN:
drawing = True
ix, iy = x, y
elif event == cv2. EVENT_MOUSEMOVE:
if drawing == True :
if mode == True :
cv2. rectangle( img, ( ix, iy) , ( x, y) , ( 0 , 255 , 0 ) , - 1 )
else :
cv2. circle( img, ( x, y) , 5 , ( 0 , 0 , 255 ) , - 1 )
elif event == cv2. EVENT_LBUTTONUP:
drawing = False
if mode == True :
cv2. rectangle( img, ( ix, iy) , ( x, y) , ( 0 , 255 , 0 ) , - 1 )
else :
cv2. circle( img, ( x, y) , 5 , ( 0 , 0 , 255 ) , - 1 )
img = np. zeros( ( 512 , 512 , 3 ) , np. uint8)
cv2. namedWindow( 'image' )
cv2. setMouseCallback( 'image' , draw_circle)
while ( 1 ) :
cv2. imshow( 'image' , img)
k = cv2. waitKey( 1 ) & 0xFF
if k == ord ( 'm' ) :
mode = not mode
elif k == 27 :
break
cv2. destroyAllWindows( )