五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

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

發(fā)布日期:2021-12-11 01:37 | 文章來源:gibhub

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

  • 讀取視頻
  • 把每一幀轉(zhuǎn)為字符畫
  • 把字符畫表現(xiàn)出來

讀取視頻

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

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

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()

轉(zhuǎn)為字符

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

#將圖像寬度縮小至width
from itertools import product#用于循環(huán)嵌套
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()

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

pixels = "▇圞國圖囜ⒶⒷⒸ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)

結(jié)果如下

動畫

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

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

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

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

主程序的代碼如下

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

完整代碼

到此這篇關(guān)于通過python繪制華強買瓜的字符畫視頻的文章就介紹到這了,更多相關(guān)python華強買瓜字符畫視頻內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部