오늘 배운 내용

Python 파이썬[활용] : 동영상을 한프레임 씩 읽어와서 변환하기

Leon_Kor 2020. 9. 8. 20:22

동영상을 텍스트로 변환하기

 

오늘 배워볼 내용은 동영상을 특정 문자들로 바꾸어서 마치 재생하는 듯한 느낌을 주게 코딩하기 !

입니다.

 

 

cmd는 녹화가 따로 안되어서

밑에 어떻게 나오는지 사진 보시죠 !!

대표사진 삭제

특정 문자로 바꾼 뒤

직접 해보시면 신기할거에요 !! : )

오늘 핵심으로 배운것은, 픽셀별로 값을 대치해서 넣어준다음 변환하는 것 입니다 !


 

[배운 것]

- for 구문에서의 이미지 별 각 문자로 변환되는 과정 ⇒ 픽셀값에 따라 적절하게 아스키코드 대입 하는 방법

- while문을 통한 비디오 한 프레임씩 불러오는 것 ⇒ cv2.VideoCapture()함수를 통해 비디오 불러오고 난 뒤, while 문을 통해 한 프레임씩 동영상을 이미지 처리와 하는 것

- 이미지의 높이 너비 변환하는 법 ⇒ resize()함수 이용

 

[코드]

import cv2
import os


CHARS = ' .,-~:;=!*#$@' # 13개의 문자들
nw = 100

cap = cv2.VideoCapture('test.mp4') # 비디오 불러오기

os.system('cls')

while cap.isOpened ():
    ret, img = cap.read() # 한 프레임씩 읽어오기
    if not ret: # 읽어올 프레임이 없으면 종료
        break

    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 이미지 회색으로 변환

    h, w = img.shape # 이미지 높이 너비
    nh = int(h/w * nw)

    img = cv2.resize(img, (int(nw * 0.5), int(nh * 0.5))) # 이미지 크기 수정

    for row in img:
        for pixel in row: # pixel은 0~255 -> CHARS 0~12 로 대체
            index = int(pixel/256 * len(CHARS)) # 0~12까지의 범위를 갖게 된다. 총 13개
            print(CHARS[index], end='')

        print()
    os.system('cls') # 한 프레임 지우기