[Python OpenCV] Drawing canvas.
2021년도 1학기 기계학습기반 영상처리 5주차 출석용 과제물입니다.
Trackbar와 Mouse를 활용하여 사각형을 출력하는 코드입니다.
코드
"""
제 목 : 기계학습기반영상처리 5주차 과제물
기 능 : Trackbar와 Mouse를 활용한 사각형 출력
파일이름 : 기계학습기반영상처리_5주차과제물_201622821_김영진
수정날짜 : 2021-04-08
작 성 자 : 소프트웨어미디어융합전공 4학년 201622821김영진
"""
import numpy as np
import cv2
image = np.zeros((1000, 1000, 3), np.uint8) #윈도우 화면의 크기는 1000x1000이며 RGB컬러를 적용한다.
image[:] = 255 #윈도우 기본 밝기는 흰색
title = '201622821_KimYeongjin H.W 1' #윈도우 이름
add_value = 0 #사각형의 Size 조절에서 사용되는 변수
color = (0, 0, 0) #사각형의 R, G, B값을 저장하는 변수
R, G, B = 0, 0, 0 #Trackbar에서 사용되는 RGB
def onChange(value):
global add_value, R, G, B
#Trackbar의 값에 따라 Size와 RGB에 값이 지정된다.
add_value = cv2.getTrackbarPos('Size', title)
R = cv2.getTrackbarPos('R', title)
G = cv2.getTrackbarPos('G', title)
B = cv2.getTrackbarPos('B', title)
def onMouse(event, x, y, flags, param):
global image, color, R, G, B
#+50 해줌으로써 최소 크기를 지정하고, add_value에 따라 Size가 증가한다.
pt1, pt2 = (x, y), (x + 50 + add_value, y + 50 + add_value)
color = (B, G, R)
#마우스 좌클릭 시 pt1, pt2 사이즈의 color값을 갖는 사각형이 생성된다.
if event == cv2.EVENT_LBUTTONDOWN:
cv2.rectangle(image, pt1, pt2, color, cv2.FILLED)
cv2.imshow(title, image)
cv2.imshow(title, image)
cv2.createTrackbar('Size', title, 0, 100, onChange)
cv2.createTrackbar('R', title, 0, 255, onChange)
cv2.createTrackbar('G', title, 0, 255, onChange)
cv2.createTrackbar('B', title, 0, 255, onChange)
cv2.setMouseCallback(title, onMouse)
cv2.waitKey(0)
cv2.destroyAllWindows()
댓글남기기