最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年11月15日 11:00:27   作者:微小冷  
要把華強賣瓜做成字符視頻大概分為三步,通過讀取視頻,把每一幀轉為字符畫,接著把字符畫表現(xiàn)出來,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧

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

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

 讀取視頻

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

在這里插入圖片描述

轉為字符

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

#將圖像寬度縮小至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)

結果如下

在這里插入圖片描述

動畫

讓命令行繪制字符視頻,聽上去可能有些不可思議,但這個功能可以僅憑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

完整代碼

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

相關文章

  • pyspark.sql.DataFrame與pandas.DataFrame之間的相互轉換實例

    pyspark.sql.DataFrame與pandas.DataFrame之間的相互轉換實例

    今天小編就為大家分享一篇pyspark.sql.DataFrame與pandas.DataFrame之間的相互轉換實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 5個Python使用F-String進行格式化的實用技巧分享

    5個Python使用F-String進行格式化的實用技巧分享

    F-String(格式化字符串字面值)是在Python?3.6中引入的,它是一種非常強大且靈活的字符串格式化方法,本文總結了5個實用的F-String技巧,相信一定能讓你的代碼輸出更加的美觀,快跟隨小編一起學習起來吧
    2024-03-03
  • Python利用手勢識別實現(xiàn)貪吃蛇游戲

    Python利用手勢識別實現(xiàn)貪吃蛇游戲

    想必大家都玩過貪吃蛇的游戲吧:通過操縱蛇的移動方向能夠讓蛇吃到隨機出現(xiàn)的食物,吃到的食物越多,蛇就會變得越長。本文將使用手勢識別來完成貪吃蛇這個簡單的游戲,感興趣的可以了解一下
    2022-04-04
  • 在OpenCV里使用特征匹配和單映射變換的代碼詳解

    在OpenCV里使用特征匹配和單映射變換的代碼詳解

    這篇文章主要介紹了在OpenCV里使用特征匹配和單映射變換的方法,本文通過圖文實例代碼相結合給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Python如何將CSV文件轉JSON文件

    Python如何將CSV文件轉JSON文件

    這篇文章主要給大家介紹了關于Python如何將CSV文件轉JSON文件的相關資料,可以使用Python內(nèi)置的csv和json模塊來實現(xiàn)將csv文件轉為json的操作,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • python實現(xiàn)簡單遺傳算法

    python實現(xiàn)簡單遺傳算法

    這篇文章主要介紹了python如何實現(xiàn)簡單遺傳算法,幫助大家更好的利用python進行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2020-09-09
  • 關于文件Permission denied解決方案(pip)

    關于文件Permission denied解決方案(pip)

    這篇文章主要介紹了文件Permission denied解決方案(pip),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python Numpy 高效的運算工具詳解

    Python Numpy 高效的運算工具詳解

    這篇文章主要介紹了Python numpy矩陣處理運算工具用法匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-10-10
  • 淺談Python淺拷貝、深拷貝及引用機制

    淺談Python淺拷貝、深拷貝及引用機制

    本篇文章主要介紹了Python淺拷貝、深拷貝及引用機制,詳細的介紹了淺拷貝、深拷貝的介紹和區(qū)別,有興趣的可以了解一下。
    2016-12-12
  • Web自動化之Selenium常用操作方法大全

    Web自動化之Selenium常用操作方法大全

    Selenium是一種自動化測試工具,可以用于測試Web應用程序,它提供了一組用于自動化Web瀏覽器進行測試的API,下面這篇文章主要給大家介紹了關于Web自動化之Selenium常用操作方法的相關資料,需要的朋友可以參考下
    2023-06-06

最新評論

洛浦县| 柳河县| 汝城县| 三明市| 武清区| 广汉市| 宜君县| 城市| 威海市| 丹棱县| 乌兰浩特市| 吉安市| 青阳县| 称多县| 鄯善县| 房产| 延津县| 高安市| 自贡市| 黑水县| 南江县| 商洛市| 颍上县| 凉城县| 凉山| 林西县| 嘉义县| 电白县| 梅河口市| 蒙阴县| 都匀市| 方山县| 诸城市| 凉城县| 天峨县| 灵台县| 淮南市| 固镇县| 浪卡子县| 固始县| 耒阳市|