Home [CV] 이미지 및 동영상 파일 저장
Post
Cancel

[CV] 이미지 및 동영상 파일 저장

파일 저장

이미지 저장

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']
This post is licensed under CC BY 4.0 by the author.