import sys
import numpy as np
import cv2
oldx = oldy = -1
def on_mouse(event, x, y, flags, param):
global oldx, oldy
if event == cv2.EVENT_LBUTTONDOWN:
oldx, oldy = x, y
print('EVENT_LBUTTONDOWN: %d, %d' % (x,y))
elif event == cv2.EVENT_LBUTTONUP:
print('EVENT_LBUTTONUP: %d, %d' % (x,y))
elif event == cv2.EVENT_MOUSEMOVE:
if flags & cv2.EVENT_FLAG_LBUTTON:
cv2.line(img, (oldx, oldy), (x,y), (0, 0, 0), 4, cv2.LINE_AA)
cv2.imshow('image', img)
oldx, oldy=x,y
if flags & cv2.EVENT_FLAG_SHIFTKEY:
cv2.circle(img, (x,y), 30, (255, 255, 255),-1)
cv2.imshow('image', img)
img = np.ones((480, 640, 3), dtype =np.uint8) * 255
cv2.namedWindow('image')
cv2.setMouseCallback('image', on_mouse, img)
while True:
cv2.imshow('image', img)
if cv2.waitKey(10) == 27:
break
cv2.destroyAllWindows()
마우스와 키보드 shift를 이용해 검은색으로 글을 쓰고 shift로 지울 수 있는 그림판을 만들어 보았다.