본문 바로가기

개인공부/python

나 혼자 하는 프로젝트 5탄 - OpenCV - 12. 퀴즈

이제 대략적인 개념 정리는 끝이 났다.

이번의 퀴즈는 가로로 촬영된 영상을 세로로 변환하여 파일로 저장하는 것이다.

영상은 pexels.com의 city로 검색하여 나온 동영상

위의 3가지 조건을 만족하는 새로운 파일을 만들어야 한다.

결과물을 보면 이렇게 총 9초에 해당하는 원본보다 4배 빠른 영상이 만들어 져야 한다.

이미 파일 저장에서 공부했던 부분이기에 추가적인 설명은 빼고

cv2.VideoWriter() 함수에 전달하는 너비,높이 값이 거꾸로 적어주어야 한다. 이유는 저장될 이미지가 회전하기 때문이다. 저 값을 반대로 적어주지 않으면, 코드를 실행하면 화면에는 90도로 회전된 영상이 출력되지만, 파일로 저장하는 과정에 에러가 생기기 때문에, 실제 재생가능한 파일로 저장되지 않는다. 또한 fps*4 로 전달하여 재생속도를 4배 증가 시켜주었다.

이제 while문 안에서 전달받는 frame(영상정보)를 cv2.rotate()를 사용하여 90도 시계반대방향으로 회전시켜 주면 된다.

이렇게 회전된 영상이 저장된 변수 rotate_270 을 out.write의 전달값으로 사용하면 끝이다.

파일도 잘 저장되었고, 실제 플레이어에서 재생했을때 차들도 더 빨리 달리고, 영상도 1/4 수준으로 길이가 줄었다.