티스토리 뷰
다른 강의자료는 www.codingnow.co.kr/ 여기를 참고해주세요.!!
약 2일간 1분 간격으로 촬영한 사진 2,496장을 타임랩스 동영상을 만들기 위해 제작 해 봤습니다.
(아두이노 ESP32CAM을 사용하여 촬영하였으며, 촬영 강의는 준비되면 올리겠습니다.~~)
OpenCV와 os 패키지를 사용하였으며,
소스 코드는 매우 간단합니다.
자세한 설명은 첨부된 동영상을 참고 해주세요.
[테스트용 이미지 파일]
[소스코드]
import cv2
import os
#pip install opencv-python
image_folder = 'images'
video_name = 'video.avi'
#1. 모든 이미지 파일의 파일명을 리스트로 변환
images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")]
# print(images)
#2. 첫번째 이미지의 프레임크기 정보를 가져온다.
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape
# print(width, height, layers)
#3. 비디오 생성
# *은 'D', 'I', 'V', 'X' 이렇게 문자열을 문자로
video = cv2.VideoWriter(video_name,
cv2.VideoWriter_fourcc(*'DIVX'),
100,
(width, height))
#4. 이미지 파일을 하나씩 가져와서 비디오에 추가
for image in images:
video.write(cv2.imread(os.path.join(image_folder, image)))
#5. 종료
cv2.destroyAllWindows()
video.release()
[주요 인자 설명]
VideoWriter의 인자 설명자료입니다.
cv2.VideoWriter(filename, fourcc, fps, frameSize, isColor=None)
• filename: 파일 이름
• fourcc: 코덱
-.ex : cv2.VideoWriter_fourcc(*'DIVX')
*'DIVX' <- DIVX MPEG-4 Codec
*'XVID' <- XVID MPEG-4 Codec
*'FMP4' <- FFMPEG MPEG-4 Codec
*'X264' <- H.264/AVC Codec
*'MJPG' <- MOTION-JPG Codec
• fps: 초당 프레임 수
• frameSize: 프레임 크기. 튜플(width, height)
• isColor:
-. True : 컬러 영상
-. False : 흑백
-. default : True
OpenCV의 간단 설명입니다.
위키백과, 우리 모두의 백과사전.
*OpenCV(Open Source Computer Vision)은
실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리이다.
*원래는 인텔이 개발하였다.
*실시간 이미지 프로세싱에 중점을 둔 라이브러리이다.
* 인텔 CPU에서 사용되는 경우 속도의 향상을 볼 수 있는 IPP(Intel Performance Primitives)를 지원한다.
* 이 라이브러리는 윈도우, 리눅스 등에서 사용 가능한 크로스 플랫폼이며
오픈소스 BSD 허가서 하에서 무료로 사용할 수 있다.
* OpenCV는 TensorFlow, Torch / PyTorch 및 Caffe의 딥러닝 프레임워크를 지원한다.
'파이썬 강의' 카테고리의 다른 글
파이썬 기초 활용편 #파일추출하기와 웹크롤링 (비트코인 종목 가져오기) (0) | 2022.05.09 |
---|---|
파이썬 기초 활용편 구구단 출력하기 (0) | 2022.05.01 |
파이썬 기초 활용편 #사무자동화 프로젝트 #pandas로 정리된 데이타를 #한글문서(HWP) 양식을 제어하여 상장 자동 생성하기 #한글API (0) | 2021.04.26 |
파이썬과 C언어 기초 활용편#가위바위보 게임 응용하여 #묵찌빠 게임 만들기#random (0) | 2021.04.18 |
파이썬 기초 활용편 #사무자동화 프로젝트 #엑셀의 데이타를 pandas를 활용한 데이타 처리하기#pandas (0) | 2021.04.08 |