사람, 물체, 장소 및 기타 요소를 식별할 수 있는 이미지를 감지하고 분석하는 기술
말만 어렵게 했지 사실 영상에 있는 걸 감지하고 분석하는 기술이라고 보면 됩니다.
대표적인 기술로는 OpenCV가 있습니다.

이렇게 생긴 녀석(?)입니다.
컴퓨터 비전을 목적으로 개발된 오픈소스 라이브러리죠.
영상 파일 입출력
화질 향상
객체 감지
3차원 비전 문제 해결
...
K-NN 분류 알고리즘
SVM
CNN
...
Windows
MacOS
...
검색에 환경 변수 치면 맨 상단에 있는 거 누릅니다.
그러면 저거 뜰 겁니다. 환경 변수 누르고 시스템 변수에 Path를 눌러주면 됩니다.

C:\Users\사용자 이름\anaconda3
C:\Users\사용자 이름\anaconda3\Library\bin
C:\Users\사용자 이름\anaconda3\Scripts
새로 만들기 눌러서 저 3개 다 입력해 주시면 되겠습니다.
(혹시 사용자 이름 그대로 쓰는 사람은 없겠죠)

conda 쳐서 되는지 확인부터 합시다. 뭐 이상한 거 길게 뜨면 된 겁니다.
conda create -n (가상 환경 이름) python=3.9
conda activate environment
conda install ipykernel
python -m ipykernel install --user --name (가상 환경 이름) --display-name "(표시되는 가상 환경 이름)"
(가상 환경 이름), (사용자 이름), (표시되는 가상 환경 이름) 그대로 쓰는 사람은 없겠죠?
(가상 환경 이름), (표시되는 가상 환경 이름) 자리에 본인이 적고 싶은 가상 환경 이름 쓰시면 되겠습니다. 그럼 됐스빈다.
jupyter notebook
(그냥 Cmd에 이거 치세요)
import cv2
img = cv2.imread('data/Dog.jpg') # 이미지 객체
cv2.imshow('image', img) # 이미지 짜잔
cv2.waitKey() # 키 입력 전까지 무한정 대기
cv2.destroyAllWindows() # 파.개.한.다.

와! 사진!
import cv2
cap = cv2.VideoCapture(0) # 0번 객체
print(cap.isOpened()) # 소스 열리니
while(cap.isOpened()): # 소스 열리는 동안
ret, frame = cap.read() # ret 성공 여부 frame 이미지 객체
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
if ret : # 성공
cv2.imshow('frame', frame) #이미지 객체를 frame 윈도우에 출력
if cv2.waitKey(1) & 0xFF == ord('q'): # 뀨 누르면 빠이
break
else: # 실패
break
cap.release() # 소스 초기화
cv2.destroyAllWindows()

와 영상!
(그냥 숙제라 안 보셔도 됩니다)
퀴즈 1
# mission
import cv2
img = cv2.imread('data/Dog.jpg')
font = cv2.FONT_HERSHEY_SIMPLEX # 폰트
text = 'Width: ' + str(cap.get(3)) + ' Height: ' + str(cap.get(4)) # 너비와 높이
title = str("Hello") # 현재 시간
frame = cv2.putText(frame, title, (550,450), font, 1, (0,255,255), 2, cv2.LINE_AA)
cv2.imshow('image', frame)
cv2.waitKey()
cv2.destroyAllWindows()
퀴즈 2
import cv2
import datetime
videoRef = 0
cap = cv2.VideoCapture(videoRef)
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
print(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
#cap.set(3, 1208) #width
#cap.set(4, 720) #height
#print(cap.get(3))
#print(cap.get(4))
while(cap.isOpened()):
ret, frame = cap.read()
if ret :
if videoRef != 0 : frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
font = cv2.FONT_HERSHEY_SIMPLEX # 폰트
text1 = 'HADURI'
text2 = 'Minwoo Kim'
frame = cv2.putText(frame, text1, (10,30), font, 1, (0,255,255), 2, cv2.LINE_AA)
frame = cv2.putText(frame, text2, (400,450), font, 1, (0,255,255), 2, cv2.LINE_AA)
# 글자 출력
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()