파일 저장
이미지 저장
cv2.imwrite()
를 사용하여 이미지를 저장한다.
1
import cv2
1
2
3
4
5
6
7
8
9
10
11
# 흑백으로 이미지 불러오기
img = cv2.imread('C:/Users/USER/Desktop/img.jpg', cv2.IMREAD_GRAYSCALE)
# 해당 코드들은 필수는 아님
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 이미지 저장
result = cv2.imwrite('img_save.jpg', img)
print(result)
1
True
동영상 저장
- 어떤 형태로 저장할지
코덱
을 정의한다. 프레임
(가로, 세로) 크기와재생 속도
를 설정한다.cv2.VideoWriter()
를 통해 어떤 파일로 어떻게 저장할지를 설정한다.- 반복문 안에서
변수.write(frame)
을 통해 영상 데이터를 저장한다. 단, 소리는 저장되지 않는다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
cap = cv2.VideoCapture('C:/Users/USER/Desktop/video.mp4')
# 코덱 정의
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
width = round(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 영상의 width (정수)
height = round(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 영상의 height (정수)
fps = cap.get(cv2.CAP_PROP_FPS) # 재생 속도
# 출력 저장 파일명, 코덱, 재생 속도, (가로, 세로)
out = cv2.VideoWriter('output.avi', fourcc, fps, (width, height))
# 연속된 프레임을 가져오기 위한 반복문
while cap.isOpened():
# ret(True/False), frame(프레임 정보)
ret, frame = cap.read()
if not ret:
break
out.write(frame) # 영상 데이터만 저장 (소리X)
cv2.imshow('vedio', frame)
if cv2.waitKey(1) == ord('q'):
break
out.release() # 자원 해제
cap.release() # 자원 해제
cv2.destroyAllWindows() # 모든 창 닫기
코덱 표현
1
2
3
4
codec = 'DIVX'
print([codec])
print([*codec])
1
2
['DIVX']
['D', 'I', 'V', 'X']