프로그래밍 꿀팁
2015년 6월 29일 월요일
[Python - OpenCV] 마우스 이벤트 - Draw 테스트
Python - OpenCV
목표 : 마우스 이벤트를 받아서 Draw 하고 저장하자
## 마우스 이벤트를 받아 그림을 그리고 그림파일로 저장한다. import cv2 import numpy as np ## 그림 모드 플래그 변수 drawing = False ## 그리고 종류 True : 사각형 False: 원 mode = True ## ix, iy 그리기 시작 포인트 ix, iy = -1, -1 ## 마우스 콜백 함수 def draw_circle(event, x, y, flags, param):m 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 True: ## 이미지 그림 cv2.imshow('image', img) ## 종료 및 모드 변경, 그림 저장 입력 k = cv2.waitKey(1) & 0xFF ## 모드 변경 if k == ord('m'): mode = not mode ## 그림 저장 elif k == ord('s'): cv2.imwrite('savefile.jpg', img) ## 종료 elif k == 27: break cv2.destroyAllWindows()
실행 결과
m : draw 모드 변경
s: 파일로 저장하기
댓글 없음:
댓글 쓰기
최근 게시물
이전 게시물
홈
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기