동영상 흑백화(그레이스케일) - OpenCV

김성빈·2024년 5월 23일
0

Modern Computer Vision

목록 보기
46/117

업로드중..
(velog 서버 문제인가, 움짤이 올라가지 않는다... 대충 드럼치는 짤)
video 폴더안에 있는 드럼치는 영상이다.

import cv2

# 동영상 클립 불러오기
cap = cv2.VideoCapture('./videos/drummer.mp4')

# 프레임의 너비와 높이 가져오기 (정수로 형변환 필요)
w = int(cap.get(3)) 
h = int(cap.get(4))

# 코덱 정의 및 VideoWriter 객체 생성. 결과물은 '*.avi' 파일에 저장됩니다.
out = cv2.VideoWriter('drummer.avi', cv2.VideoWriter_fourcc('M','J','P','G'), 30, (w, h), False)

while(1):

    ret, frame = cap.read()

    if ret == True:
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  # 그레이스케일로 변환
        out.write(gray)  # 그레이스케일로 변환한 프레임 저장
    else:
        break
        print("Converted Video to Grayscale..")  # 비디오를 그레이스케일로 변환했다는 메시지 출력
        
cap.release()  # 비디오 캡처 객체 해제
out.release()  # 비디오 저장 객체 해제
cv2.destroyAllWindows()  # 모든 창 닫기

여기서 VideoWriter 객체를 생성하는 부분으로

out = cv2.VideoWriter('drummer.avi', cv2.VideoWriter_fourcc('M','J','P','G'), 30, (w, h), False)

MJPG 형식으로 30프레임, 아까 추출한 동영상 너비와 높이를 넣고, (다른 코덱 및 포맷 예시 H.264 / MPEG-4 AVC (AVC1), MP4)

마지막 False로 하면 흑백, True로 하면 칼라로 저장한다는 것이다.

알아둘점은 드러머 영상의 각 프레임을 독립적으로

그레이스케일로 변환되어 새로운 비디오에 추가한다.

영상을 시작하면, 흑백 영상으로 출력

이번엔 로컬에 가져와서 영상을 처리하고 처리한 영상을 봤는데,

클라우드 환경에서는 로컬에서 사용하는 것처럼 실시간으로 비디오를 시청할수 없으므로,

클라우드에서 GPU를 이용해 처리하는 Colab

profile
감사합니다. https://www.youtube.com/channel/UCxlkiu9_aWijoD7BannNM7w

0개의 댓글