오늘 배운 내용
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') # 한 프레임 지우기