OpenCV

Arsen·2022년 10월 11일
0

Python

목록 보기
11/12
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로 지울 수 있는 그림판을 만들어 보았다.

profile
ML/AR/CV 공부

0개의 댓글