激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 通過python繪制華強買瓜的字符畫視頻的步驟詳解

通過python繪制華強買瓜的字符畫視頻的步驟詳解

2022-03-01 11:44微小冷 Python

要把華強賣瓜做成字符視頻大概分為三步,通過讀取視頻,把每一幀轉為字符畫,接著把字符畫表現出來,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧

已經11月了,不知道還有沒有人看華強買瓜。。。要把華強賣瓜做成字符視頻,總共分為三步:

  • 讀取視頻
  • 把每一幀轉為字符畫
  • 把字符畫表現出來

 

讀取視頻

通過imageio讀取視頻,除了pip install imageio之外,還需要pip install imageio-ffmpeg。

由于視頻中的圖像都是彩色的,故而需要將rgb三色轉為單一的強度,并將轉化后的圖像裝入一個列表中。

import imageio
import numpy as np
import matplotlib.pyplot as plt
video = imageio.get_reader('test.mp4')
imgs = []
for img in video:
  imgs.append(np.mean(img,2))
plt.imshow(imgs[0])
plt.show()

通過python繪制華強買瓜的字符畫視頻的步驟詳解

 

轉為字符

這個視頻雖然已被壓縮,但對于字符畫而言還是太大了,所以轉字符畫之前需對其進一步壓縮。這里采取最簡單的方法――即對相鄰的像素取平均值。

#將圖像寬度縮小至width
from itertools import product   #用于循環嵌套
def resizeImg(img,w,h=None):
  m,n = img.shape
  if n<w:
      return img
  if not h:
      h = int(m*w/n)
  im = np.zeros([h,w])
  rw,rh = n/w,m/h         #縮放比例
  dw,dh = int(rw),int(rh) #取均值的步長
  for i,j in product(range(h),range(w)):
      I,J = int(i*rh),int(j*rw)
      im[i,j] = np.mean(img[I:I+dh,J:J+dw])
  return im
# 測試一下
im = resizeImg(imgs[0],160)
plt.imshow(im)
plt.show()

通過python繪制華強買瓜的字符畫視頻的步驟詳解

接下來,就可以生成字符畫了,所謂字符畫,無非是將像素值映射成一個字符,方法非常簡單

pixels = "~K圖???B8&WMZO0QJX@%&jfoavunxr#t/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ^`'. " #用于映射的字符
def im2txt(img):
  im = np.floor(img/255*len(pixels)).astype(int)
  txts = ""
  for line in im:
      txts += "".join([pixels[i] for i in line])
      txts += '\r\n'    #像素換行時文本也要換行
  return txts
#測試
txt = im2txt(im)
print(txt)

結果如下

通過python繪制華強買瓜的字符畫視頻的步驟詳解

 

動畫

讓命令行繪制字符視頻,聽上去可能有些不可思議,但這個功能可以僅憑python內置的模塊實現――即curses,唯一可惜的是,Windows下的Python并不內置這個模塊,需要額外安裝。

先下載和自己python版本相符的curses,然后通過pip命令安裝

>pip install "curses-2.2.1+utf8-cp310-cp310-win_amd64.whl"

然后就可以在python中調用了。由于視頻太大,所以這里只演示一小段,效果如下

通過python繪制華強買瓜的字符畫視頻的步驟詳解

主程序的代碼如下

if __name__ == "__main__":
  video = imageio.get_reader('test.mp4')
  txts = []
  # 生成字符畫
  for img in video:
      im = resizeImg(np.mean(img,2),120,30)
      txts.append(im2txt(im))

  # 初始化屏幕
  scr = curses.initscr()
  scr.timeout(40)     #每次等待鍵盤輸入的時間為40ms
  #scr.
  for txt in cycle(txts):
      scr.addstr(0,0,txt)
      scr.border(0)
      scr.refresh()
      #curses.delay_output(25)
      if scr.getch()==27: #如果按下`esc`則退出`
          break

完整代碼

到此這篇關于通過python繪制華強買瓜的字符畫視頻的文章就介紹到這了,更多相關python華強買瓜字符畫視頻內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/m0_37816922/article/details/121296343

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕在线观看网址 | 乱淫67194| 国产精品午夜在线 | 国产一区二区三区网站 | 中文字幕在线视频网站 | 精品国产乱码一区二区三区四区 | 国产午夜精品久久久久 | 免费一级高清毛片 | 成人永久免费视频 | 91av网址| 久久伊人国产精品 | 色中色综合网 | 色就色 综合偷拍区91网 | 夜夜看 | 爱唯侦察 国产合集 亚洲 | 一区二区视 | 成人免费网站在线观看 | 91短视频网页版 | 免费a级片在线观看 | 成人爽a毛片免费啪啪红桃视频 | 日本黄色一级电影 | 欧美成人一级 | 黄色羞羞视频在线观看 | 成人国产精品久久 | 国产一级一片免费播放 | 精品成人免费视频 | 欧美日韩在线免费观看 | 久久亚洲国产午夜精品理论片 | 国产精品jk白丝蜜臀av软件 | 黄色aaa视频 | 国产午夜精品一区二区三区在线观看 | 国产一级桃视频播放 | 亚洲第一成人在线视频 | 91精品国产91热久久久做人人 | 调教小男生抽打尿孔嗯啊视频 | 99国内精品 | 国产电影av在线 | 欧美a黄| 91久久另类重口变态 | 高清做爰免费无遮网站挡 | 视频一区 在线 |