from pickletools import uint8 import cv2 as cv import numpy as np # setup a write 3 channel image img = np.ones((512, 512, 3), dtype=np.uint8) * 255 # define callback function def draw_circle(event, x, y, flags, param): if event == cv.EVENT_LBUTTONDOWN: # draw a black 20px radius circle on img cv.circle(img, (x, y), 20, (0, 0, 0), -1) # setup a window named 'show_img' cv.namedWindow('show_img') # set a mouse callback cv.setMouseCallback('show_img', draw_circle) while (1): cv.imshow('show_img', img) pressedKey = cv.waitKey(5) if pressedKey == ord('q'): break elif pressedKey == ord('s'): cv.imwrite("mouse_draw_circle.jpg", img); print("save success") cv.destroyAllWindows()