python刷抖音_用Python生成抖音字符視頻!

wx_article_20190307202714_Bl5Lkw.jpg

抖音字符視頻在去年火過一段時間。

反正我是始終忘不了那段極樂凈土的音樂...

這一次自己也來實現一波,做一個字符視頻出來。

主要用到的庫有cv2,pillow庫。

原視頻如下,直接抖音下載的,妥妥的水印。

不過并不影響本次的操作。

/ 01 / 視頻轉圖片

在Pycharm上直接安裝cv2庫是成功不了的,具體什么原因我也不清楚。

經過我的實踐,發現只需在Pycharm的虛擬環境下。

運行下面這個命令,即可成功安裝cv2這個庫。

pip3 install opencv-python

不過還是會出現下載速度過慢,導致超時。

如果實在不行就可以去官網,下個.whl格式來安裝。

視頻轉圖片代碼如下。

import cv2

import os

# 在當前目錄下新建文件夾

folder_path = "img_bear/"

os.makedirs(folder_path)

# 進行視頻的載入

vc = cv2.VideoCapture('bear.mp4')

c = 0

# 判斷載入的視頻是否可以打開

ret = vc.isOpened()

# 循環讀取視頻幀

while ret:

c = c + 1

# 進行單張圖片的讀取,ret的值為True或者Flase,frame表示讀入的圖片

ret, frame = vc.read()

if ret:

# 存儲為圖像

cv2.imwrite('img_bear/'+str(c) + '.jpg', frame)

# 輸出圖像名稱

print('img_bear/'+str(c) + '.jpg')

# 在一個給定的時間內(單位ms)等待用戶按鍵觸發,1ms

cv2.waitKey(1)

else:

break

# 視頻釋放

vc.release()

最后成功生成了369張圖片。

wx_article_20190307202714_YOjAKL.jpg

呆萌呆萌的××熊,我是不知道什么品種的熊...

/ 02 / 圖片轉字符

普通圖片轉字符圖片主要使用了pillow庫。

對圖片做灰度處理,然后根據圖片像素點的灰度值,添加對應的字符。

具體代碼如下。

from PIL import Image, ImageDraw, ImageFont

import numpy as np

import os

# 創建字符圖片文件夾

folder_path = "bear/"

os.makedirs(folder_path)

for i in range(1, 1000):

filename = 'img_bear/' + str(i) + '.jpg'

# 字符列表

ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~ <>i!lI;:,"^`'. ")

# 判斷圖片是否存在

if os.path.exists(filename):

# 將圖片轉化為灰度圖像,并重設大小

img_array = np.array(Image.open(filename).resize((70, 70), Image.ANTIALIAS).convert('L'))

# 創建新的圖片對象

img = Image.new('L', (560, 560), 255)

draw_object = ImageDraw.Draw(img)

# 設置字體

font = ImageFont.truetype('consola.ttf', 10, encoding='unic')

# 根據灰度值添加對應的字符

for j in range(70):

for k in range(70):

x, y = k * 8, j * 8

index = int(img_array[j][k] / 4)

draw_object.text((x, y), ascii_char[index], font=font, fill=0)

name = 'bear/' + str(i) + '.jpg'

print(name)

# 保存字符圖片

img.save(name, 'JPEG')

最后成功生成了字符圖片。

wx_article_20190307202714_dhZKNg.jpg

和上面的原圖一樣,也是369張。

/ 03 / 字符轉視頻

接下來使用cv2庫,將字符圖片轉化為視頻。

具體代碼如下。

import cv2

import os

# 設置視頻編碼器,這里使用使用MJPG編碼器

fourcc = cv2.VideoWriter_fourcc(*'MJPG')

# 輸出視頻參數設置,包含視頻文件名、編碼器、幀率、視頻寬高(此處參數需和字符圖片大小一致)

videoWriter = cv2.VideoWriter('bear_character.avi', fourcc, 20.0, (560, 560))

for i in range(1, 1000):

filename = 'bear/'+str(i)+'.jpg'

# 判斷圖片是否存在

if os.path.exists(filename):

img = cv2.imread(filename=filename)

# 在一個給定的時間內(單位ms)等待用戶按鍵觸發,100ms

cv2.waitKey(100)

# 將圖片寫入視頻中

videoWriter.write(img)

print(str(i) + '.jpg' + ' done!')

# 視頻釋放

videoWriter.release()

最后成功生成字符視頻。

這里懶得去添加原來的BGM,所以湊合著看吧。

據說瞇眼看,效果更佳。

/ 04 / 總結

相關的視頻以及代碼已上傳公眾號。

公眾號回復「字符」即可獲取。

最后在此給自己做的抖音視頻拉個票~

看過上一期送書推文的讀者應該知道,就是那個抖音視頻大賽。

大家要是有興趣也可以去參加,具體的見上條送書推文。

其中文末的視頻是我做的,而且我也去參加了,能不能拿大獎就靠大家了。

公眾號「數據森麟」的作者也參加了,了解這個公眾號的讀者,也可以去一睹大佬的真容,幫忙點贊,哈哈。

對于就開過一次贊賞的我而言,大家的抖音點贊就是對我最大的贊賞。

晚上的時候,還找了幾個問過我問題的讀者,幫忙點贊,大家也挺配合的。

其中有個小妹妹,手機上沒抖音,還立馬去下了一個,來幫我點贊。

心中有一種莫名的感動,感謝大家的支持。

wx_article_20190307202714_nB3SV6.jpg

具體的見上圖,就是那個藍色的模糊的視頻,不過就視頻的效果而言,應該堪稱大片。

手機上有抖音的就幫忙點個贊,沒抖音的就算啦。

畢竟少刷抖音,多看書。這句話,一點毛病也沒有。

萬水千山總是情,點個「好看」行不行。

--------------------- End ---------------------

往期精彩文章推薦:

【推薦】一個網站,解決你的論文下載、論文查重還有...

手把手教你抓取微博火鍋信息Top3——火鍋只能點三樣

手把手教你用Fiddler+MongoDB抓取貓眼APP短評

Python大佬抓取房價信息帶你開展多維度分析深圳房租

Python數據可視化:2018年電影分析

看完本文有收獲?請轉發分享給更多的人

IT共享之家

入群請在微信后臺回復【學習】

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258946.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258946.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258946.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

變長參數

轉載自&#xff1a;http://blog.csdn.net/tht2009/article/details/7019635 變長參數 設計一個參數個數可變、參數類型不定的函數是可能的&#xff0c;最常見的例子是printf函數、scanf函數和高級語言的Format函數。在C/C中&#xff0c;為了通知編譯器函數的參數個數和類型可變…

第十七章 我國農業科學技術

農村改革解說&#xff08;專著&#xff09;第十七章 第十七章 我國農業科學技術 1、為什么說科學技術是生產力&#xff1f; 我們說科學技術是生產力&#xff0c;是因為在構成生產力的兩個主要因素中&#xff0c;都包含著科學技術在內。 A、生產力中人的因素是同一定的科學技術緊…

《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一一1.2 選購鏡頭時應注意的事項...

本節書摘來自異步社區出版社《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一書中的第1章&#xff0c;第1.2節&#xff0c;作者&#xff1a; 葛存山&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.2 選購鏡頭時應注意的事項 面對如此之多的鏡頭&#xf…

OpenCV中的神器Image Watch

Image Watch是在VS2012上使用的一款OpenCV工具&#xff0c;能夠實時顯示圖像和矩陣Mat的內容&#xff0c;跟Matlab很像&#xff0c;方便程序調試&#xff0c;相當好用。跟VS2012配合使用&#xff0c;簡直就是一款神器&#xff01;讓我一下就愛上它了&#xff01; 下面介紹一些鏈…

python異步_Python通過Thread實現異步

當long函數耗時較長時&#xff0c;需要程序先向下執行&#xff0c;這就需要異步&#xff0c;改寫代碼如下&#xff1a; import _thread import time def long(cb): print (long execute) def fun(callback): time.sleep(5) result long end callback(result) _thread.start_ne…

SAM4E單片機之旅——13、LCD之ASF初步

在Atmel Studio 6中&#xff0c;集成了Atmel Software Framework&#xff08;ASF框架&#xff09;。通過它提供的庫&#xff0c;可以很快速地完成新的項目。 這次的最終目標使用ASF在LCD上顯示出文字“Hello World!”&#xff0c;現階段目標是點亮LCD的背光&#xff0c;學習目標…

《HTML5與CSS3實戰指南》——2.2 基本的HTML5模板

本節書摘來自異步社區《HTML5與CSS3實戰指南》一書中的第2章&#xff0c;第2.2節,作者&#xff1a; 【美】Estelle Weyl , Louis Lazaris , Alexis Goldstein 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.2 基本的HTML5模板 在您學習HTML5和新技術時&#xff0c;您…

c# Message const

typeTMsg packed recordhwnd: HWND; //窗口句柄message: UINT;//消息常量標識符wParam: WPARAM ;// 32位消息的特定附加信息lParam: LPARAM ;// 32位消息的特定附加信息time: DWORD;//消息創建時的時間pt: TPoint; //消息創建時的鼠標位置end ; 消息中有什么&#xff1f;是否覺…

OpenCV坐標體系的初步認識

實驗基礎本次實驗通過一個簡短的例子&#xff0c;主要來說明下面4個問題&#xff1a; 1. 坐標體系中的零點坐標為圖片的左上角&#xff0c;X軸為圖像矩形的上面那條水平線&#xff1b;Y軸為圖像矩形左邊的那條垂直線。該坐標體系在諸如結構體Mat,Rect,Point中都是適用的。&…

python爬取知乎live_Python爬蟲 - 簡單抓取百度指數

前言有點忙&#xff0c;沒空寫東西&#xff0c;這是之前寫的&#xff0c;加了些配圖而已 這次要爬的網站是百度指數 正文 一、分析 打開網站(百度指數)&#xff0c;呈現出來是這樣的 如果搜索的話就需要登陸了&#xff0c;如果沒有什么特別頻繁的請求的話&#xff0c;直接登陸復…

在Visual Studio上開發Node.js程序

在Visual Studio上開發Node.js程序 原文:在Visual Studio上開發Node.js程序【題外話】 最近準備用Node.js做些東西&#xff0c;于是找找看能否有Visual Studio上的插件以方便開發。結果還真找到了一個&#xff0c;來自微軟的Node.js Tools for Visual Studio&#xff08;NTVS&a…

Oracle ASM 翻譯系列第十一彈:高級知識 Offline or drop?

Offline or drop? 當一個ASM磁盤不可用時&#xff0c;ASM會把它從磁盤組里移除&#xff0c;對嗎&#xff1f;要看情況&#xff0c;通常取決于ASM版本和磁盤組的冗余級別。因為一個external冗余的磁盤組會直接被dismount&#xff0c;所以主要關注normal和high冗余磁盤組的情況。…

net與樹莓派的情緣-安裝與卸載MySql(五)

安裝MySql sudo apt-get install mysql-server 刪除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-serversudo apt-get autoremove mysql-serversudo apt-get remove mysql-common //這個很重要上面的其實有一些是多余的。 清理殘留數據 …

mpls工作原理通俗解釋_用這兩種方法向最終用戶解釋NLP模型的工作原理還是不錯的...

點擊上方關注&#xff0c;All in AI中國上周&#xff0c;我看了一個關于“NLP的實踐特性工程”的演講。主要是關于LIME和SHAP在文本分類可解釋性方面是如何工作的。我決定寫一篇關于它們的文章&#xff0c;因為它們很有趣、易于使用&#xff0c;而且視覺上很吸引人。所有的機器…

向往2的年代

1. JDBC 對插入大量數據如何處理&#xff1f; 2. JAVA反射的使用&#xff0c;如何獲取一個java類的某個方法&#xff1f; 3. 數據庫連接池&#xff08;優化&#xff09; 4. 分布式事務管理轉載于:https://www.cnblogs.com/dragonflyyi/p/3564843.html

C++ limits頭文件的用法(numeric_limits)

初學C的時候&#xff0c;對這個模板很陌生&#xff0c;不知道它到底是做什么用的&#xff0c;今天拿起《C標準程序庫》&#xff0c;出現了它的討論&#xff0c;所以決定好好研究一番。 1. numeric_limits是什么&#xff1f; &#xff08;A&#xff09;《C標準程序庫》&#xff…

三層架構——配置文件

1、配置文件是什么&#xff1f; 配置文件是隨安裝程序一起被安裝到計算機上的文件&#xff0c;里面存放著安裝好的應用程序執行時所須要的參數。 應用程序配置文件是標準的XML文件&#xff0c;XML標記和屬性是區分大寫和小寫的。它能夠按須要更改&#xff0c;開發者可使用配置文…

《嵌入式系統開發之道——菜鳥成長日志與項目經理的私房菜》——02-04項目范圍(Scope)管理...

本節書摘來異步社區《嵌入式系統開發之道——菜鳥成長日志與項目經理的私房菜》一書中的第2章&#xff0c;第2.4節&#xff0c;作者&#xff1a;邱毅凌&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看 02-04項目范圍&#xff08;Scope&#xff09;管理 嵌入式…

flex(入門)之timer的使用,鍵盤,鼠標的監聽

package {import flash.display.Shape;import flash.display.Sprite;import flash.events.Event;import flash.events.KeyboardEvent;import flash.events.MouseEvent;import flash.events.TimerEvent;import flash.utils.Timer;import mx.controls.Label;//窗體大小&#xff0…

python 線程超時設置_python 條件變量Condition(36)

文章首發微信公眾號&#xff0c;微信搜索&#xff1a;猿說python對于線程與線程之間的交互我們在前面的文章已經介紹了 python 互斥鎖Lock / python事件Event , 今天繼續介紹一種線程交互方式 – 線程條件變量Condition.一.線程條件變量Condition相關函數介紹acquire() — 線程…