-
[opencv/python] 동영상 읽어와서 처리 후 다시 동영상으로 만들기Data Science/컴퓨터비전 2023. 6. 18. 19:22반응형
동영상을 기반으로한 프로젝트들을 하다보면, 결과에 대해서 표현해 주어야하는 경우가 생긴다.
해당 포스팅에서는 이에 대한 내용을 간략히 정리해본다.
1. 동영상 프레임(이미지) 단위로 불러오기
cap = cv2.VideoCapture("동영상 주소") if cap.isOpened(): ret, img = cap.read() while ret: ret, img = cap.read() if not ret: break ## 이미지 처리 부분 # ~~
2. 미사용 프레임에 대해서 생략하기
특정 프레임을 스킵하고 싶다면 아래의 명령어로 cap.read 보다 빠르게 스킵 가능하다
cap.grab()
3. 이미지 처리하기
예측모델의 동작이나 전/후처리 가 여기에 해당할 수 있다.
해당 포스팅에서는 모델부분은 다루지 않고, 간단한 이미지에 글자 추가하기로 대체한다.
text = "입력하고싶은 글자" font = cv2.FONT_HERSHEY_SIMPLEX # 글자 폰트 fontSize = 1 # 글자 크기 color = (255,255,255) # 글자 색 thickness = 1 # 글자 굵기 cv2.putText(img, text, (x,y), font, fontSize, color , thickness, cv2.LINE_AA)
4. 처리한 이미지 저장하기
output_path = '출력파일 경로 및 이름' fps = 30 img_h, img_w, img_c = img.shape # 동영상 파일 생성 out = cv2.VideoWriter(output_path,cv2.VideoWriter_fourcc(*'DIVX'), fps, (img_w,img_h)) # 이미지 입력 out.write(img) # 동영상 릴리즈 out.release()
5. 활용
cap = cv2.VideoCapture("동영상 주소") output_path = '출력파일 경로 및 이름' fps = 30 if cap.isOpened(): ret, img = cap.read() img_h, img_w, img_c = img.shape # 출력 동영상 파일 생성 out = cv2.VideoWriter(output_path,cv2.VideoWriter_fourcc(*'DIVX'), fps, (img_w,img_h)) while ret: ret, img = cap.read() if not ret: break # 한 프레임 생략 cap.grab() text = "입력하고싶은 글자" font = cv2.FONT_HERSHEY_SIMPLEX # 글자 폰트 fontSize = 1 # 글자 크기 color = (255,255,255) # 글자 색 thickness = 1 # 글자 굵기 cv2.putText(img, text, (x,y), font, fontSize, color , thickness, cv2.LINE_AA) # 이미지 입력 out.write(img) # 동영상 릴리즈 out.release()
반응형'Data Science > 컴퓨터비전' 카테고리의 다른 글
Diffusion Model 기본 개념 공부하기 (3) 2024.03.17 [python, opencv] 판별된 오브젝트가 특정 영역 내부에 있는지 판단하기(다각형 폴리곤을 이용한 마스크 만들기, 작업구역 탐지, 위험구역 탐지) (0) 2023.05.30 [Python, opencv] 다각형 그리기 코드 구현(cv2.polylines) (0) 2023.05.30