傑尼龜系列表情包在廣大網友之間傳遞快樂,紅極一時。我想是傑尼龜可愛的外表以及憨憨的形態,圓圓的臉蛋大大的眼睛,且其常常在劇中擺出各式誇張表情,於是被廣大網友製成各式各樣的表情包,而且深受沙雕網友的喜好。編程
正好,我也是這沙雕網友大軍中的一員,經過各類渠道收集了一些傑尼龜的表情包。但,我想要更多,只有擁有沙雕表情包最多的人才能在鬥圖中立於不敗之地,因而便有了用Python獲取多是全網最全的傑尼龜表情包這一系列。本系列旨在獲取更多更多的傑尼龜表情包,傳遞更多歡樂。!網絡
全系列一共三彈,每一彈都運用Python做爲編程語言,主要涉及網絡爬蟲、數據圖像處理以及機器學習這幾個應用領域,今天即是這第一彈!機器學習
如何得到更多的傑尼龜表情包?編程語言
這些流傳的表情包無非就是截取自動畫片《精靈寶可夢》,而後有選擇性地縮放或是剪切圖片,再對應圖片加上相關的文字。所以按照這個邏輯,咱們須要首先在這視頻上作文章。ide
做爲第一代御三家的一員,傑尼龜主要活躍在《精靈寶可夢》的第一部無印篇,於是咱們僅須要考慮第一部的視頻,而這第一部中,不乏一些傑尼龜專集。學習
直接下載這第一部的視頻費時費力,剛好B站有up主上傳了全部含傑尼龜的集數合集,這裏偷個小懶,我直接採用了@Henryhaohao寫得很是棒的B站視頻爬蟲將該專輯合集的全部視頻下載到本地。動畫
既然已經將全部視頻下載,接下來即可以利用openCV將每一個視頻切割爲圖片。這裏fps即是幀率,意爲每一秒刷新的圖片數量,frames則是一整段視頻中總的圖片數量。spa
def vedio_to_pic(path):
vedio_path=os.listdir(path)
count=0
for vedio in vedio_path:
videoCapture=cv2.VideoCapture()
videoCapture.open(os.path.join(path,vedio,vedio+'.flv'))
fps=videoCapture.get(cv2.CAP_PROP_FPS)
frames = videoCapture.get(cv2.CAP_PROP_FRAME_COUNT)
print("fps=",fps,"frames=",frames)
for i in range(int(frames)):
ret,frame=videoCapture.read()
if ret:
if i%int(fps/5)==0:
cv2.imwrite("pic/jieni{}_{}.jpg".format(count+1,i),frame)
count+=1複製代碼
這裏每一幀僅保存1/5的圖片,由於每一幀內的圖片較爲類似,幀內全部圖片獲取存在較大的冗餘。code
至此,咱們便擁有了海量可能包含傑尼龜的圖片,下一彈便來說講如何使用機器學習來幫助咱們篩選那些包含傑尼龜的圖片!orm