Schoolwork/컴퓨터그래픽스 및 비젼

[Python] 02주차 과제 - 영상에 이름 써넣기

FATKITTY 2020. 9. 5. 11:12
반응형

아래 순서 대로 동작하는 파이썬 프로그램을 작성하라.

 

  1. 입력 영상의 파일명을 키보드로 입력받는다. 

  2. space bar 를 누르면 입력 영상을 파일로 부터 읽어 들인다. 

  3. space bar 를 누르면 입력 영상을 화면에 디스플레이한다.

  4. space bar 를 누르면 디스플레이된 영상을 닫는다.

  5. space bar 를 누르면 입력영상의 중앙 위치에 자신의 이름(영문 또는 국문)이 표시된 결과 영상을 디스플레이 한다.

  6. space bar 를 누르면 결과영상을 저장할 파일 명을 입력받는다. 

  7. space bar 를 누르면 결과영상을 파일에 저장한다. 

  8. 종료 

과제내용

Code

import cv2 as cv
import keyboard

get_image = input("Input image file name to import : ")  # 입력 이미지 파일명

keyboard.wait('space')
img_basic = cv.imread(get_image, cv.IMREAD_COLOR)  # 이미지를 칼라 포함해서 읽기

keyboard.wait('space')
cv.imshow('Image Basic', img_basic)  # 이미지 화면에 보이기

cv.waitKey(0)  # 이미지 화면을 보여주자마자 꺼지지 않도록 입력을 받을 수 있음
cv.destroyAllWindows()  # 창 모두 닫기

name_on_img = cv.imread(get_image)

# set up text
text = "Yumin Lee"
font = cv.FONT_ITALIC
color_blue = (255, 0, 0)
fontScale = 2
thickness = 2

# get boundary of this text
textsize = cv.getTextSize(text, font, fontScale, thickness)[0]

# get coords based on boundary
textX = int((name_on_img.shape[1] - textsize[0]) / 2)
textY = int((name_on_img.shape[0] + textsize[1]) / 2)
center = (textX, textY)

name_on_img = cv.putText(name_on_img, text, center, font, fontScale, color_blue, thickness)

keyboard.wait('space')
cv.imshow('Name on Image', name_on_img)
cv.waitKey(0)
cv.destroyAllWindows()

keyboard.wait('space')
save_image = input("Input image file name to save : ")  # 저장할 이미지 파일명

keyboard.wait('space')
cv.imwrite(save_image, name_on_img)  # 결과이미지 파일 저장

 

점수 10/10

반응형