OpenCV의 MouseCallback으로 마우스 클릭으로 연속해서 Drawing 해서 이미지를 생성하는 예제
입니다. 종료하고자 할 경우 Eac Key를 입력하면 되며, 그 전까지는 OpenCV는 계속 유지됩니다.
[함수설명]
cv2.setMouseCallback(windowname, callback, param=None)
Paramaters : windowname : windowName
callback : callback 함수에는 (eventm x, y, flag, param) 이 전달됩니다.
param : callback함수에 전달돠는 data
OpenCV의 MouseCallback 으로 이미지 그리기 예제
# OpenCV MouseCallback
import cv2
import numpy as np
drawing = False # True is Mouse Click
ix, iy = -1, -1
# Mouse Callback
def draw_circle(event, x, y, flags, param):
global ix, iy, drawing, mode
if event == cv2.EVENT_LBUTTONDOWN:
drawing = True
ix, iy = x, y
if event == cv2.EVENT_MOUSEMOVE:
if drawing == True:
cv2.circle(img, (x, y), 5, (0, 255, 0), -1)
elif event == cv2.EVENT_LBUTTONUP:
drawing = False
cv2.circle(img, (x, y), 5, (0, 255, 0), -1)
# black Area Create
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 == 27: # Esc Key
break
cv2.destroyAllWindows()
# image Save
image_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite('C:/Users/sunan/PycharmProjects/NewPJ3.7/OenCV/IMAGE/test_gray.jpg', image_gray)
실행 결과
'OpenCV' 카테고리의 다른 글
OpenCV 의 Haar-cascade 로 얼굴 인식 예제 (0) | 2019.10.22 |
---|---|
OpenCV로 동영상 저장하기 예제 (0) | 2019.10.20 |
OpenCV 로 이미지 읽기와 저장하기 예제 (0) | 2019.10.20 |