获取frame_用Python获取可能是全网最全的杰尼龟表情包(第一弹)
杰尼龜系列表情包在廣大網友之間傳遞快樂,紅極一時。我想是杰尼龜可愛的外表以及憨憨的形態,圓圓的臉蛋大大的眼睛,且其經常在劇中擺出各式夸張表情,因而被廣大網友制成各式各樣的表情包,并且深受沙雕網友的喜愛。
正好,我也是這沙雕網友大軍中的一員,通過各種渠道收集了一些杰尼龜的表情包。但,我想要更多,只有擁有沙雕表情包最多的人才能在斗圖中立于不敗之地,于是便有了用Python獲取可能是全網最全的杰尼龜表情包這一系列。本系列旨在獲取更多更多的杰尼龜表情包,傳遞更多歡樂。!
全系列一共三彈,每一彈都運用Python作為編程語言,主要涉及網絡爬蟲、數據圖像處理以及機器學習這幾個應用領域,今天便是這第一彈!
爬取視頻
如何獲得更多的杰尼龜表情包?
這些流傳的表情包無非就是截取自動畫片《精靈寶可夢》,然后有選擇性地縮放或是剪切圖片,再對應圖片加上相關的文字。因此按照這個邏輯,我們需要首先在這視頻上做文章。
作為第一代御三家的一員,杰尼龜主要活躍在《精靈寶可夢》的第一部無印篇,因而我們僅需要考慮第一部的視頻,而這第一部中,不乏一些杰尼龜專集。
直接下載這第一部的視頻費時費力,恰好B站有up主上傳了所有含杰尼龜的集數合集,這里偷個小懶,我直接采用了@Henryhaohao寫得非常棒的B站視頻爬蟲將該專輯合集的所有視頻下載到本地。
視頻切割
既然已經將所有視頻下載,接下來便可以利用openCV將每個視頻切割為圖片。這里fps便是幀率,意為每一秒刷新的圖片數量,frames則是一整段視頻中總的圖片數量。
def vedio_to_pic(path):vedio_path=os.listdir(path)count=0for 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的圖片,因為每一幀內的圖片較為相似,幀內所有圖片獲取存在較大的冗余。
至此,我們便擁有了海量可能包含杰尼龜的圖片,下一彈便來講講如何使用機器學習來幫助我們篩選那些包含杰尼龜的圖片!
總結
以上是生活随笔為你收集整理的获取frame_用Python获取可能是全网最全的杰尼龟表情包(第一弹)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多生产者_多线程必考的「生产者 - 消费
- 下一篇: 判断文件是否损坏_判断Excel文件是否