さくっと画像を確認したい
普段,コマンドプロンプトやターミナルで作業してると画像の確認に手間取ります.
cv2の場合,imshowメソッドで画像の表示ができますが,それも面倒です.
そこで,今回のプログラムは,コンソールに画像をアスキーアート化したものを表示します.
処理の流れは
- 画像の読込
- グレースケール化
- リサイズ(一行に収まるように)
- 1ピクセルごとに文字へ変換
- コンソールに表示
となります.
ImagePrint.py
import cv2
density = list("MWN$@%#&B89EGA6mK5HRkbYT43V0JL7gpaseyxznocv?jIftr1li*=-~^`':;,. ")
LEN = len(density)
def image_print(image, wid=30):
gray = cv2.cvtColor(img, 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-1)-resized[i][j]//(256//LEN)]
print(s)
if __name__ == '__main__':
img = cv2.imread("lenna.png")
image_print(img, 30)
また,ANSIエスケープシーケンスを使えば動画の再生もできます.ぜひ挑戦してみてください!