ANSIエスケープシーケンス
前回,画像のアスキーアート化について紹介しました.
今回はANSIエスケープシーケンスを使って動画の表示に挑戦したいと思います.
.py
必要最低限の機能であれば,以下プログラムで実現できます.
PCに接続されたカメラから画像を取得しAA化,表示を1秒に数回行います.
VideoPrint.py
import cv2
cap = cv2.VideoCapture(0)
wid = 90
density = list("MWN$@%#&B89EGA6mK5HRkbYT43V0JL7gpaseyxznocv?jIftr1li*=-~^`':;,. ")
try:
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
resized = cv2.resize(gray, (int(wid*2),int(wid)))
for i in range(resized.shape[0]):
s = ""
for j in range(resized.shape[1]):
s += density[(len(density)-1)-resized[i][j]//(256//len(density))]
print(s)
print("\033[{}F".format(wid+1))
except KeyboardInterrupt:
cap.release()
print("\033[{}E".format(wid+1))