1. openCV 라이브러리 사용해서 카메라(웹캠)을 작동시키기고 garyScale 표현하기
2. Python time 라이브러리를 사용하여 웹캠 비디오 화면에 타임스탬프 추가하기
코드 작성을 위한 라이브러리를 import 합니다.
import cv2
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
cv2.resize(frame, (800,600))
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 영상프레임에 grayScale 적용
cv2.imshow('Press Spacebar to Exit',frame)
cv2.imshow("Gray",gray) # 원본 영상과 grayScale한 영상 비교를 위한 imshow
if cv2.waitKey(1) & 0xFF == ord(' '): # space bar 클릭 시 정지
break
camera.release()
cv2.destroyAllWindows()
- cv2.VideoCapture()
- cv2.VideoCapture(filename) filename : 동영상 파일 명 또는 이미지 파일명
- cv2.VideoCapture(device) : 연결된 장치(카메라) index(하나만 있는 경우는 0)
- cv2.resize()
이미지의 크기를 조절하기 위한 resize()
- cv2.resize(src, dstSize, fx, fy, interpolation)
: 입력 프레임(src), 절대 크기(dstSize), 비율로 크기 설정(fx, fy), 보간법(interpolation), 출력 이미지(dst)cv2.resize(frame, (800,600)) cv2.resize(frame, None, fx=2, fy=2)
- cv2.cvtColor()
본래의 색상 공간에서 다른 색상 공간으로 변환할 때 사용하는 cvtColor()
- dst = cv2.cvtcolor(src, code, dstCn) # 기본 형식은 이렇지만 dstCn부분의 출력채널은 Null값을 사용해도 괜찮기에
일반적으로 이렇게 사용됩니다.gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
- grayScale을 하는 이유
: 3차원 데이터(b, g, r)을 2차원 데이터로 변경할 수 있다
ex/ (600, 800, 3) -> (600, 800)
코드 작성을 위한 라이브러리를 import 합니다.
from datetime import datetime
import cv2
cap = cv2.VideoCapture(0) # 카메라(웹캠)로 VideoCapture 객체 생성
while True:
ret, frame = cap.read()
frame = cv2.resize(frame,(800,600))
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.putText(frame, str(datetime.now()), (300,50), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (255,255,255), 2)
cv2.imshow('Press Spacebar to Exit',frame) # 프레임 표시
if cv2.waitKey(1) & 0xFF == ord(' '): # space bar 클릭 시 정지
break
cap.release()
cv2.destroyAllWindows()
- cv2.putText()
cv2.putText()를 사용하여 비디오 프레임 or 이미지에 글자를 넣어준다.
- cv2.putTexet(frame, text, org, font, fontscale, color, thickness)
: 입력 프레임(frame), 넣어줄 글자(text), 글자를 넣어줄 좌표값(org), 글꼴(font), 글자크기(fontscale), 글자색(color), 글자 두께(thickness)cv2.putText(frame, "안녕하세요", (300,50), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0,255,0), 2)