A ship in harbor is safe, but that is not what ships are built for.

개발일지/AI 캠프

내일배움캠프 AI - 54일차 TIL, 2022.11.16

플리피나리 2022. 11. 17. 10:53
반응형

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차

2022.11.16. 54일차 - TIL

 

 

1. 딥러닝 원격강의

  • 알고리즘 : 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것
  • 딥러닝 모델 : input을 통해 output이 나오게 기계로, 딥러닝 연구원들은 문제를 정확하게 풀기 위해 해당 기계가 스스로 조립할 수 있도록 유도하는 역할을 한다(이것을 딥러닝 모델 "학습"이라 한다...)
  • 대표적인 딥러닝 모델 : DFN, RNN, LSTM, CNN, GAN
import cv2
import tensorflow as tf
import dlib

print(cv2.__version__)
print(tf.__version__)
print(dlib.__version__)

img = cv2.imread('01.jpg')  # 이미지 읽기
overlay_img = cv2.imread('dices.png', cv2.IMREAD_UNCHANGED)  # png파일을 imread로 불러올 때는 무조건 cv2.IMREAD_UNCHANGED

# print(img)  # 이미지 출력 > 컴퓨터가 보는 이미지의 형태는 '숫자'
# print(img.shape)  # (높이, 너비, 채널) 출력

# # cv2.rectangle : 직사각형을 그릴 수 있게 도와주는 함수
# # img : 사각형을 그릴 이미지
# # pt1 : 사각형의 왼쪽 위 좌표
# # pt2 : 사각형의 오른쪽 아래 좌표
# # color : 사각형의 색깔(BGR)
# # thickness : 도형 선 두께 > 안쪽 색칠은 음수값
# cv2.rectangle(img, pt1=(259, 89), pt2=(380, 348), color=(255, 0, 0), thickness=2)

# # cv2.circle : 원을 그릴 수 있게 도와주는 함수
# # img : 원을 그릴 이미지
# # center : 원의 중심 좌표
# # radius : 원의 반지름
# # color : 원의 색깔(BGR)
# # thickness : 도형 선 두께 > 안쪽 색칠은 음수값
# cv2.circle(img, center=(320, 220), radius=100, color=(255, 0, 0), thickness=2)
# cv2.imshow('result', img)  # 'result' 창을 띄워 이미지 보여주기
# cv2.waitKey(0)  # 아무 키를 입력할 때까지 이미지 띄운 창 유지

overlay_img = cv2.resize(overlay_img, dsize=(150, 150))  # 사진 크기 가로 150, 세로 150으로 조정

# 배경 이미지와 오버레이 이미지를 퍼즐처럼 끼워맞추는 코드
overlay_alpha = overlay_img[:, :, 3:] / 255.0
background_alpha = 1.0 - overlay_alpha

x1 = 100  # 주사위 그림 위치
y1 = 100
x2 = x1 + 150  # 주사위 그림 크기를 더한 값
y2 = y1 + 150

# 배경 이미지 자르고 그곳에 주사위 이미지값 저장
img[y1:y2, x1:x2] = overlay_alpha * overlay_img[:, :, :3] + background_alpha * img[y1:y2, x1:x2]

cv2.imshow('result', img)  # 'result' 창을 띄워 이미지 보여주기
cv2.waitKey(0)  # 아무 키를 입력할 때까지 이미지 띄운 창 유지
import cv2

cap = cv2.VideoCapture('03.mp4')

while True:
    ret, img = cap.read()
    img = img[183:465, 721:878]
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    if ret == False:  # 동영상 프레임 읽고 바로 확인하는게 좋을 듯...
        break
    
    cv2.imshow('result', img_gray)
    
    if cv2.waitKey(1) == ord('q'):
        break

 

1주차 내용은 다 따라서 해보았다. 이전에 튜터님이 가르쳐주신 내용이라 크게 어렵지는 않았지만 의외로 아나콘다 설치가 안되서 애먹었다.(아나콘다는 한글 이름 폴더 밑에 설치가 불가하다... 그래서 폴더 이름 변경하려고 헛짓하다가 결국 계정 하나를 새로 만드는 것으로 합의를 봤다... 이후 뭐 할 때마다 계정 권한 확인한다는 물음이 짜증났다... 이것만 몇시간을 잡아먹었다.)

반응형