2021년도 1학기 기계학습기반 영상처리 5주차 출석용 과제물입니다.
TrackbarMouse를 활용하여 사각형을 출력하는 코드입니다.

코드

"""
제   목 : 기계학습기반영상처리 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()

실행결과

201622821_KimYeongjin H.W 1 2021-04-08 오후 8_50_54

댓글남기기