스파르타 코딩클럽의 딥러닝 이미지 처리 수업을 기반으로 공부한 내용을 정리하고 있습니다.
동영상 플레이어를 만들어 볼 것이다.
우선 동영상을 open CV로 불러오자.
가장 중요한 포인트는 동영상은 연속된 이미지로 이루어져 있다.
즉 동영상은 여러장의 이미지로 나누어 볼 수도 있는 것이다.
**최종코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import cv2
cap = cv2.VideoCapture('04.mp4')
while True:
ret, img = cap.read()
#무한 루프를 돌면서 이미지를 계속 불러온다.
# cap.read로 이미지를 한장씩 불러와서 저장한다,
if ret == False: # 동영상 재생이 끝나면 false가 되고, 루프가 종료.
break
cv2.imshow('result', img)
#위의 동영상에서 처리한 이미지들을 다 띄우는 것이다.
if cv2.waitKey(1) == ord('q'):
break
#동영상에는 waiKey가 0으로 무한정으로 뜨도록 하기 보다는
# 속도를 조절할 수 있다. 숫자가 커질수록 속도가 느리게 이미지가 뜬다고 보면 된다.
# 위의 코드는 q버튼을 클릭시에 이미지가 종료되도록 지정한 것이다.
|
cs |
-
cv2.VideoCapture() 동영상 파일을 불러올 때 쓴다. 괄호 안에 동영상 파일의 경로를 입력하면 해당 영상 파일을 로드
-
while True: 아래 코드를 반복하면서 실행
동영상에서 이미지를 한 프레임씩 읽고 출력하는 코드를 무한하게 반복한다는 의미이다.
-
ret, img = cap.read()
cap.read() 를 사용하여 동영상 파일에서 한 개의 프레임을 읽어온다. 영상은 수 백개, 수 천개의 프레임으로 이루어져 있고 각 프레임은 사진 1장과 같다.
-
ret 변수에는 영상에서 제대로 프레임을 읽어 왔을 때 True가 저장되고 프레임이 더 이상 존재하지 않거나 에러가 발생했을 때 False가 저장된다.
-
img 변수에는 읽어 온 1개의 프레임이 저장된다. 만약 ret 이 False 일 경우 None 이 저장됩니다.
if ret == False: break따라서 ret 이 False 라면 프레임이 더 이상 존재하지 않으므로 무한루프에서 빠져나와 프로그램을 종료한다.
-
프로그램 종료하기
위에 이미지와 마찬가지로 cv2.imshow() 를 사용하여 result라는 이름의 윈도우에 img를 출력한다,
cv2.waitKey(1) 1ms (0.001초) 동안 키보드의 입력을 기다린다.
만약 키보드의 q 버튼을 누르면 무한루프에서 빠져나와 프로그램을 종료
동영상 처리 심화
1) 영상에서 도형 띄우기 : 이미지와 방법이 유사하다
-> 한 프레임씩 이미지를 저장할 때 그 코드 아래에 이미지 도형 코드 출력을 기재한다.
2) 추가적으로 리사이즈/ 자르기/ 컬러 시스템 변경하기 모두 이미지와 유사한 방법으로 진행하면 된다.
=> 위의 모든 코드들을 while true를 도는 동영상 내의 이미지 출력 코드 아래에 기재하면 된다.
3) 캠영상을 화면에 띄우기
비디오 캡쳐 코드 부분을 아래와 같이 수정하면 된다.
그리고 실행하면 웹캠을 통해 내얼굴이 뜨게된다.
-> 여기서 나는 웹캠이 뜨지 않았고 아래의 방법으로 해결 했다.
1. VSCode 에서 Cmd + Shift + P
2. Shell Command: Install 'code' command in PATH 클릭
3. Cmd + Q를 눌러 VSCode 강제 종료
4. 터미널 프로그램 실행
5. sudo code 를 입력해서 VSCode를 관리자 권한으로 실행 (비밀번호 입력 필요)
6. 작성한 코드 실행
'Data' 카테고리의 다른 글
딥러닝_이미지 처리하기(1) (0) | 2020.12.03 |
---|---|
[Intro]딥러닝 이미지 처리_기본적인 기능(이미지 처리) (0) | 2020.11.26 |
딥러닝 이미지 처리_투명도/ 이미지 합성 (0) | 2020.11.26 |
open cv module 에러 (0) | 2020.11.26 |
[개인공부필기]딥러닝 이해하기_CNN모델 (0) | 2020.11.11 |