国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

碼神軍訓(四,五)——代碼跳舞軍體拳

mayaohua / 1238人閱讀

摘要:吹水今天,碼神依舊涼爽,軍體拳,摸魚一天,所以早上就在操場趴著,不過,我學會了,信不信看到抖音小姐姐的舞蹈,用代碼做出來,還挺好看,我也想試一下,不會,學莫,反正假酒已經醒了。

吹水

今天,碼神依舊涼爽,軍體拳,摸魚一天,所以早上就在操場趴著,**不過,我學會了, **信不信?看到抖音小姐姐的舞蹈,用代碼做出來,還挺好看,我也想試一下,不會,學莫,反正假酒已經醒了。

想思路

總不能一個一個做吧,這可是一個視頻,一個一個做我做到明年都弄不完,大致思路如下:

  • 視頻變圖片,專業術語:視頻抽幀
  • 圖片變字符,專業術語:把抽幀得到的圖片集轉換為字符畫集
  • 字符變舞蹈,專業術語:循環打印,變成動畫效果

代碼實現

視頻抽幀

將一段視頻截取下來,使用GIF截取工具

轉化字符

將gif轉化為字符

用python導入庫

import osimport reimport shutilimport cv2from PIL import Imageimport moviepy.editor as mpy

讀取字符

def rename_gif():    file_list = os.listdir("./temp")  # 讀取當前文件夾所有文件    # print(file_list)    print("檢測到文件夾下圖片:")    n = len(file_list)    num_list = []    num1 = num2 = 0    for i in range(n):        s = str(file_list[i])        if s[-4:] == ".gif":  # 檢查后綴            res = re.findall(r"/d+", s)            if res[0] == "1":                num1 += 1            if res[0] == "2":                num2 += 1            src = os.path.join(os.path.abspath("./temp/"), s)  # 原先的圖片名字            dst = os.path.join(os.path.abspath("./temp/"), res[0] + "-" + res[1]+".gif")  # 根據自己的需要重新命名            os.rename(src, dst)  # 重命名,覆蓋原先的名字    num_list.append(num1)    num_list.append(num2)    file_list = os.listdir("./temp")  # 讀取當前文件夾所有文件    for i in range(n):        s = str(file_list[i])        if s[-4:] == ".gif":  # 檢查后綴            res = re.findall(r"/d+", s)            src = os.path.join(os.path.abspath("./temp/"), s)  # 原先的圖片名字            a = int(res[0])-1            index = a*num_list[a-1]            dst = os.path.join(os.path.abspath("./temp/"), str(index + int(res[1])) + ".gif")  # 根據自己的需要重新命名            os.rename(src, dst)  # 重命名,覆蓋原先的名字

循環輸出

用到python中的一個庫

pip install opencv-python
def charts2video(img_path, video_path):    """將給定目錄下的圖片轉成視頻    Args:        img_path: 圖片路徑        video_path: 輸出視頻的路徑和名稱    Returns: 圖片轉成的視頻    """    images = os.listdir(img_path)    images.sort(key=lambda x: int(x[:-4]))  # 以名稱字符串的數字從小到大排序      fps = 12  # 幀數    fourcc = cv2.VideoWriter_fourcc("M", "P", "4", "V")    im = Image.open(img_path + images[0])    video_writer = cv2.VideoWriter(video_path, fourcc, fps, im.size)    for img_i in images:        frame = cv2.imread(img_path + img_i)        print("開始將 " + img_i + " 加入視頻/n")        video_writer.write(frame)  # 注意:圖片尺寸必須和視頻尺寸一樣,不然不會被加入視頻中!!!    video_writer.release()

最后的代碼舞視頻我已經上傳到B站了,大家可以一起來欣賞下喔。
還有就是我已經學會軍體拳了,不用一直摸魚了
https://www.bilibili.com/video/BV1RP4y18741/

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122571.html

相關文章

  • Java開發第一面————淘寶:難以割舍的痛

    摘要:供應商和經銷商之間可以在線實時地提交訂單查詢產品供應和庫存狀況并獲得市場銷售信息及客戶支持,實現了供應商與經銷商之間端到端的供應鏈管理,有效地縮短了供銷鏈。近期太多同學找我解惑,我經常勸大家不要過度焦慮,放平常心,其實我剛畢業時超級菜 B 的(放到今天工作都找不到那種),總結下來就是前面的 職場瓶頸:2~4 年前端走出離職困境與舒適區 的這些文章,于是我把剛入行在 ITEye 寫的文章,統...

    Nekron 評論0 收藏0
  • Java多線程進階(十九)—— J.U.C之synchronizer框架:CyclicBarrier

    摘要:當到達柵欄后,由于沒有滿足總數的要求,所以會一直等待,當線程到達后,柵欄才會放行。任務其實就是當最后一個線程到達柵欄時,后續立即要執行的任務。 showImg(https://segmentfault.com/img/remote/1460000016010958); 本文首發于一世流云專欄:https://segmentfault.com/blog... 一、CyclicBarri...

    tulayang 評論0 收藏0
  • 技術人攻略訪談二十:運維人的野蠻生長

    摘要:我一直認為運維工程師就是讓跳舞的人,當我操縱幾百臺機器,整齊劃一地做一件事情,那種感覺特別棒。技術人攻略你怎么看待,運維和開發的關系應該怎樣平衡國內大家提得多 showImg(http://segmentfault.com/img/bVb66I); 技術人攻略:運維工作普遍很辛苦,你卻能做得如此快樂,有哪些經驗可以分享? 流程比補位更重要,方法比拼命更重要。UPYUN運...

    mating 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<