佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > python+opencv實現(xiàn)視頻抽幀示例代碼

python+opencv實現(xiàn)視頻抽幀示例代碼

熱門標(biāo)簽:美圖手機(jī) 網(wǎng)站文章發(fā)布 服務(wù)器配置 鐵路電話系統(tǒng) 呼叫中心市場需求 檢查注冊表項 智能手機(jī) 銀行業(yè)務(wù)

1、數(shù)據(jù)集簡述:

       雖然有主流龐大的COCO、VOC數(shù)據(jù)集,但是科研人員仍需要特殊領(lǐng)域要求的數(shù)據(jù)集,所以采用人工實地采集的方式進(jìn)行收集數(shù)據(jù)集圖像;通過拍照收集圖像過于繁瑣,所以通常是將攝像頭無規(guī)則的移動旋轉(zhuǎn)以及遠(yuǎn)近拉縮,進(jìn)而錄制視頻;再通過視頻抽幀的方式得到大量的圖像,再將這些圖像進(jìn)行人工標(biāo)注處理。

        博主通過一個水下錄制視頻為例子,當(dāng)這類圖像在網(wǎng)上鮮有存在時,要求有關(guān)技術(shù)人員進(jìn)行實拍采集,下圖即為采集得到的視頻。

        為了避免不符合項目要求的數(shù)據(jù)增強(qiáng),博主要求技術(shù)人員在錄制視頻時最大程度地讓攝像頭進(jìn)行移動、旋轉(zhuǎn)以及遠(yuǎn)近調(diào)節(jié)等;這樣抽幀后的圖像更具有泛化性。

2、代碼介紹:

下面是采用以幀數(shù)為間隔的方法進(jìn)行視頻抽幀,博主個人認(rèn)為這樣子的方式調(diào)節(jié)間隔更加方便,更符合個人習(xí)慣。

import cv2
from PIL import Image
import numpy as np


cap = cv2.VideoCapture("D:/Download/ANMR0005.mp4")  # 獲取視頻對象
isOpened = cap.isOpened  # 判斷是否打開
# 視頻信息獲取
fps = cap.get(cv2.CAP_PROP_FPS)

imageNum = 0
sum=0
timef=15  #隔15幀保存一張圖片

while (isOpened):

    sum+=1

    (frameState, frame) = cap.read()  # 記錄每幀及獲取狀態(tài)

    if frameState == True and (sum % timef==0):

        # 格式轉(zhuǎn)變,BGRtoRGB
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        # 轉(zhuǎn)變成Image
        frame = Image.fromarray(np.uint8(frame))

        frame = np.array(frame)

        # RGBtoBGR滿足opencv顯示格式
        frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

        imageNum = imageNum + 1
        fileName = 'D:/Download/video_image/image' + str(imageNum) + '.jpg'  # 存儲路徑
        cv2.imwrite(fileName, frame, [cv2.IMWRITE_JPEG_QUALITY, 100])
        print(fileName + " successfully write in")  # 輸出存儲狀態(tài)

    elif frameState == False:
        break

print('finish!')
cap.release()

3、代碼效果:

pycharm運行py文件后結(jié)果框顯示的內(nèi)容:

視頻抽幀得到的圖像保存至指定的文件夾:

抽幀得到的圖片示例:

 

4、相關(guān)說明: ①本代碼依據(jù)錄制視頻、對opencv的理解以及大佬的項目代碼靈感進(jìn)行編寫;

大佬的項目代碼地址

②本數(shù)據(jù)集屬于私人閉源,不公開。

到此這篇關(guān)于python+opencv實現(xiàn)視頻抽幀的文章就介紹到這了,更多相關(guān)python opencv視頻抽幀內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 使用python-opencv讀取視頻,計算視頻總幀數(shù)及FPS的實現(xiàn)
  • Python OpenCV視頻截取并保存實現(xiàn)代碼
  • 使用Python opencv實現(xiàn)視頻與圖片的相互轉(zhuǎn)換
  • Python+OpenCV+pyQt5錄制雙目攝像頭視頻的實例
  • python+opencv打開攝像頭,保存視頻、拍照功能的實現(xiàn)方法
  • python opencv讀mp4視頻的實例
  • Python OpenCV獲取視頻的方法

標(biāo)簽:上海 樂山 長治 紅河 沈陽 滄州 河南 新疆

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python+opencv實現(xiàn)視頻抽幀示例代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    绍兴市| 乐至县| 华亭县| 故城县| 淮阳县| 连云港市| 天全县| 榆林市| 自治县| 孟津县| 怀柔区| 浦县| 东宁县| 凤山县| 龙井市| 南乐县| 金塔县| 浮山县| 黎川县| 桂东县| 荃湾区| 霸州市| 翼城县| 阿坝| 鹤岗市| 缙云县| 乐陵市| 乌兰察布市| 全椒县| 宿松县| 垣曲县| 临漳县| 藁城市| 崇左市| 交口县| 陕西省| 新邵县| 布尔津县| 荃湾区| 海城市| 蒙阴县|