教你使用Python提取視頻中的美女圖片
前言
人類都是視覺(jué)動(dòng)物,不管是男生還是女生看到漂亮的小姐姐、小哥哥就想截圖保存下來(lái)。可是截圖會(huì)對(duì)畫(huà)質(zhì)會(huì)產(chǎn)生損耗,截取的
畫(huà)面不規(guī)整,像素不高等問(wèn)題。

用 Python 寫(xiě)一個(gè)逐幀無(wú)損保存視頻畫(huà)面的小腳本大致可以分為三個(gè)步驟:
1.在 cmd 中使用 you-get 下載視頻
2.OpenCV 讀取并處理視頻
3.將視頻畫(huà)面保存為圖片
安裝模塊
1.you-get 模塊用于下載視頻,它需要 ffmpeg 模塊配合使用。
pip3 install you-get
2.windows 的 ffmpeg 的下載地址是
[https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-essentials.7z],解壓后將 bin 文件加入環(huán)境變量。

3.python-OpenCV 模塊用來(lái)讀取視頻幀,并保存成圖片。
pip3 install opencv-python
you-get
you-get 是一個(gè)開(kāi)源的視頻下載軟件,支持 80+ 網(wǎng)站視頻的下載。只需要一行代碼就可以了。
在 cmd 中運(yùn)行下面的命令下載視頻:
you-get -o 下載后保存文件的目錄 視頻的 url 地址

如果報(bào) ‘you-get’ 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序 問(wèn)題,可以運(yùn)行
pip show you-get
將 Location 的值的 site-packages 改成 Scripts 加入到環(huán)境變量,如:c:\users\xxx\appdata\roaming\python\python39\site-
packages 改成c:\users\xxx\appdata\roaming\python\python39\Scripts。
OpenCV
磨刀不誤砍柴工, 在開(kāi)發(fā)之前先來(lái)認(rèn)識(shí)一下 OpenCV。它的全稱是 Open Source Computer Vision Library,是一個(gè)可以跨平臺(tái)的
計(jì)算機(jī)視覺(jué)庫(kù) ,OpenCV-Python 是 OpenCV 的 Python API。
它集合了 C++ 和 Python 的最優(yōu)特征,用于支持 Python 解決計(jì)算機(jī)視覺(jué)的問(wèn)題。OpenCV 可以用于人機(jī)互動(dòng)、圖像分割、人臉
識(shí)別等等領(lǐng)域。
在處理視頻按幀保存圖片的時(shí)候需要用到以下幾個(gè)函數(shù):
1.cap = cv2.VideoCapture("視頻地址"):參數(shù)是視頻的地址表示讀取一個(gè)視頻文件。
2.cap = cv2.VideoCapture(0):參數(shù)是 0 表示打開(kāi)電腦上的攝像頭。
3.cap.isOpened():
返回 true 和 false 表示是否成功。
4.success, frame = cap.read():這個(gè)函數(shù)就是 OpenCV 讀取視頻的下一幀,第一個(gè)返回值表示是否讀取成功,第二個(gè)返回值就是返回讀取到的視頻幀。
5.cv2.imencode():將上面的視頻幀按照?qǐng)D片編碼后緩存到內(nèi)存中,調(diào)用 tofile() 函數(shù)保存成文件。
話不多說(shuō),用上面的函數(shù)寫(xiě)一個(gè)截取視頻畫(huà)面的 Python 程序
import cv2
import os
image_base_path = "D:\\video\\images\\";
def get_images(video_path):
frame_times = -1;
fileName = video_path.split("\\")[-1:][0].split('.')[0]
image_out_path = image_base_path + fileName
if not os.path.exists(image_out_path):
os.makedirs(image_out_path)
cap = cv2.VideoCapture(video_path)
while cap.isOpened():
frame_times = frame_times + 1
success, frame = cap.read()
if not success:
break;
cv2.imencode('.jpg', frame)[1].tofile(image_out_path + "\\" + str(frame_times) + ".jpg")
if __name__ == '__main__':
get_images('D:\\vedio\\?溫柔旗袍中國(guó)風(fēng)?
結(jié)束
代碼和教程給大家放在上面,喜歡的都可以動(dòng)手操作起來(lái)。教程很簡(jiǎn)單,非常適合大家拿來(lái)練手。
到此這篇關(guān)于教你使用Python提取視頻中的美女圖片的文章就介紹到這了,更多相關(guān)python提取視頻圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)周日歷與時(shí)間相互轉(zhuǎn)換
周日歷是日常生活中不常用到的歷法系統(tǒng),一般用于政府、商務(wù)的會(huì)計(jì)年度或者學(xué)校教學(xué)日歷中。本文為大家介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)周日歷與時(shí)間相互轉(zhuǎn)換,感興趣的可以學(xué)習(xí)一下2022-07-07
Python內(nèi)置函數(shù)——__import__ 的使用方法
本篇文章主要介紹了Python內(nèi)置函數(shù)——__import__ 的使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
僅用幾行Python代碼就能復(fù)制她的U盤(pán)文件?
上大學(xué)的時(shí)候有老師不給上課的PPT,就總想有個(gè)程序能偷偷復(fù)制老師的U盤(pán)一直沒(méi)有去實(shí)現(xiàn),最近不想看論文就想起來(lái)這個(gè)事情了,發(fā)現(xiàn)其實(shí)用幾行python代碼就能搞定.分兩步,首先寫(xiě)出來(lái)python代碼,其次把.py文件轉(zhuǎn)換成exe文件,直接在windows電腦上后臺(tái)運(yùn)行,需要的朋友可以參考下2021-06-06
教你用Python實(shí)現(xiàn)Excel表格處理
今天教各位小伙伴怎么用Python處理excel,文中有非常詳細(xì)的代碼示例及相關(guān)知識(shí)總結(jié),對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05
利用Pyhton中的requests包進(jìn)行網(wǎng)頁(yè)訪問(wèn)測(cè)試的方法
今天小編就為大家分享一篇利用Pyhton中的requests包進(jìn)行網(wǎng)頁(yè)訪問(wèn)測(cè)試的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12

