python刷抖音_用Python生成抖音字符视频!
抖音字符視頻在去年火過一段時(shí)間。
反正我是始終忘不了那段極樂凈土的音樂...
這一次自己也來實(shí)現(xiàn)一波,做一個(gè)字符視頻出來。
主要用到的庫有cv2,pillow庫。
原視頻如下,直接抖音下載的,妥妥的水印。
不過并不影響本次的操作。
/ 01 / 視頻轉(zhuǎn)圖片
在Pycharm上直接安裝cv2庫是成功不了的,具體什么原因我也不清楚。
經(jīng)過我的實(shí)踐,發(fā)現(xiàn)只需在Pycharm的虛擬環(huán)境下。
運(yùn)行下面這個(gè)命令,即可成功安裝cv2這個(gè)庫。
pip3 install opencv-python
不過還是會(huì)出現(xiàn)下載速度過慢,導(dǎo)致超時(shí)。
如果實(shí)在不行就可以去官網(wǎng),下個(gè).whl格式來安裝。
視頻轉(zhuǎn)圖片代碼如下。
import cv2
import os
# 在當(dāng)前目錄下新建文件夾
folder_path = "img_bear/"
os.makedirs(folder_path)
# 進(jìn)行視頻的載入
vc = cv2.VideoCapture('bear.mp4')
c = 0
# 判斷載入的視頻是否可以打開
ret = vc.isOpened()
# 循環(huán)讀取視頻幀
while ret:
c = c + 1
# 進(jìn)行單張圖片的讀取,ret的值為True或者Flase,frame表示讀入的圖片
ret, frame = vc.read()
if ret:
# 存儲(chǔ)為圖像
cv2.imwrite('img_bear/'+str(c) + '.jpg', frame)
# 輸出圖像名稱
print('img_bear/'+str(c) + '.jpg')
# 在一個(gè)給定的時(shí)間內(nèi)(單位ms)等待用戶按鍵觸發(fā),1ms
cv2.waitKey(1)
else:
break
# 視頻釋放
vc.release()
最后成功生成了369張圖片。
呆萌呆萌的××熊,我是不知道什么品種的熊...
/ 02 / 圖片轉(zhuǎn)字符
普通圖片轉(zhuǎn)字符圖片主要使用了pillow庫。
對(duì)圖片做灰度處理,然后根據(jù)圖片像素點(diǎn)的灰度值,添加對(duì)應(yīng)的字符。
具體代碼如下。
from PIL import Image, ImageDraw, ImageFont
import numpy as np
import os
# 創(chuàng)建字符圖片文件夾
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):
# 將圖片轉(zhuǎn)化為灰度圖像,并重設(shè)大小
img_array = np.array(Image.open(filename).resize((70, 70), Image.ANTIALIAS).convert('L'))
# 創(chuàng)建新的圖片對(duì)象
img = Image.new('L', (560, 560), 255)
draw_object = ImageDraw.Draw(img)
# 設(shè)置字體
font = ImageFont.truetype('consola.ttf', 10, encoding='unic')
# 根據(jù)灰度值添加對(duì)應(yīng)的字符
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')
最后成功生成了字符圖片。
和上面的原圖一樣,也是369張。
/ 03 / 字符轉(zhuǎn)視頻
接下來使用cv2庫,將字符圖片轉(zhuǎn)化為視頻。
具體代碼如下。
import cv2
import os
# 設(shè)置視頻編碼器,這里使用使用MJPG編碼器
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
# 輸出視頻參數(shù)設(shè)置,包含視頻文件名、編碼器、幀率、視頻寬高(此處參數(shù)需和字符圖片大小一致)
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)
# 在一個(gè)給定的時(shí)間內(nèi)(單位ms)等待用戶按鍵觸發(fā),100ms
cv2.waitKey(100)
# 將圖片寫入視頻中
videoWriter.write(img)
print(str(i) + '.jpg' + ' done!')
# 視頻釋放
videoWriter.release()
最后成功生成字符視頻。
這里懶得去添加原來的BGM,所以湊合著看吧。
據(jù)說瞇眼看,效果更佳。
/ 04 / 總結(jié)
相關(guān)的視頻以及代碼已上傳公眾號(hào)。
公眾號(hào)回復(fù)「字符」即可獲取。
最后在此給自己做的抖音視頻拉個(gè)票~
看過上一期送書推文的讀者應(yīng)該知道,就是那個(gè)抖音視頻大賽。
大家要是有興趣也可以去參加,具體的見上條送書推文。
其中文末的視頻是我做的,而且我也去參加了,能不能拿大獎(jiǎng)就靠大家了。
公眾號(hào)「數(shù)據(jù)森麟」的作者也參加了,了解這個(gè)公眾號(hào)的讀者,也可以去一睹大佬的真容,幫忙點(diǎn)贊,哈哈。
對(duì)于就開過一次贊賞的我而言,大家的抖音點(diǎn)贊就是對(duì)我最大的贊賞。
晚上的時(shí)候,還找了幾個(gè)問過我問題的讀者,幫忙點(diǎn)贊,大家也挺配合的。
其中有個(gè)小妹妹,手機(jī)上沒抖音,還立馬去下了一個(gè),來幫我點(diǎn)贊。
心中有一種莫名的感動(dòng),感謝大家的支持。
具體的見上圖,就是那個(gè)藍(lán)色的模糊的視頻,不過就視頻的效果而言,應(yīng)該堪稱大片。
手機(jī)上有抖音的就幫忙點(diǎn)個(gè)贊,沒抖音的就算啦。
畢竟少刷抖音,多看書。這句話,一點(diǎn)毛病也沒有。
萬水千山總是情,點(diǎn)個(gè)「好看」行不行。
--------------------- End ---------------------
往期精彩文章推薦:
【推薦】一個(gè)網(wǎng)站,解決你的論文下載、論文查重還有...
手把手教你抓取微博火鍋信息Top3——火鍋只能點(diǎn)三樣
手把手教你用Fiddler+MongoDB抓取貓眼APP短評(píng)
Python大佬抓取房價(jià)信息帶你開展多維度分析深圳房租
Python數(shù)據(jù)可視化:2018年電影分析
看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多的人
IT共享之家
入群請(qǐng)?jiān)谖⑿藕笈_(tái)回復(fù)【學(xué)習(xí)】
總結(jié)
以上是生活随笔為你收集整理的python刷抖音_用Python生成抖音字符视频!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C++深度剖析教程11】C++学习之编
- 下一篇: python异步_Python通过Thr