国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python迅速從短視頻中獲取視頻幀的辦法詳細說明

89542767 / 812人閱讀

  本文給大家介紹一類從視頻里獲取視頻幀的辦法,因為單核獲取視頻幀速率比較慢,因而接下來我們增強了線程同步的辦法,感興趣的朋友能夠出手試一試


  Python迅速獲取視頻幀(線程同步)


  現(xiàn)在詳細介紹一下一類從視頻里獲取視頻幀的辦法,因為單核獲取視頻幀速率比較慢,因而接下來我們增強了線程同步的辦法。


  1、獲取視頻幀


  獲取視頻幀關(guān)鍵用了Opencv控制模塊。


  在其中:


  camera=cv2.Videocapture(),函數(shù)公式主要通過啟用筆記本電腦內(nèi)置攝像頭載入視頻幀;


  res,image=camera.read()函數(shù)公式通常是按幀載入短視頻,傳參“res”是布爾型,取得成功載入回到True,載入不成功回到False;


  最終用cv2.imwrite()函數(shù)公式存放載入過的視頻幀。


  視頻幀獲取方式可參考本文


  import cv2
  import os
  def video_to_frames(video_path,outPutDirName):
  times=0
  #提取視頻的頻率,每1幀提取一個
  frame_frequency=1
  #如果文件目錄不存在則創(chuàng)建目錄
  if not os.path.exists(outPutDirName):
  os.makedirs(outPutDirName)
  #讀取視頻幀
  camera=cv2.VideoCapture(video_path)
  while True:
  times=times+1
  res,image=camera.read()
  if not res:
  print('not res,not image')
  break
  #按照設(shè)置間隔存儲視頻幀
  if times%frame_frequency==0:
  cv2.imwrite(outPutDirName+''+str(times)+'.jpg',image)
  print('圖片提取結(jié)束')
  #釋放攝像頭設(shè)備
  camera.release()

  2、線程同步方式


  線程同步的應(yīng)用關(guān)鍵應(yīng)用了threading庫。


  在其中:


  threading.Thread()函數(shù)公式主要是用于啟用線程同步,在其中主要參數(shù)“target”是上邊需要用到的函數(shù)公式,主要參數(shù)“args”是上邊函數(shù)的輸入數(shù)據(jù)。


  在其中相關(guān)線程同步的詳細介紹一下,及其速率提高效果可參考本文


  import threading
  threading.Thread(target=video_to_frames,args=(video_path,outPutDirName)).start()


  留意


  1、extract_frame方方法的入?yún)⒎謩e是:鍵入視頻地址、導(dǎo)出視頻地址、短視頻fps、視頻尺寸寬、視頻尺寸高、短視頻必須抽走的起點幀、短視頻必須抽走的完畢幀。


  3、整體代碼


  import cv2
  import os
  import threading
  def video_to_frames(video_path,outPutDirName):
  times=0
  #提取視頻的頻率,每1幀提取一個
  frame_frequency=1
  #如果文件目錄不存在則創(chuàng)建目錄
  if not os.path.exists(outPutDirName):
  os.makedirs(outPutDirName)
  #讀取視頻幀
  camera=cv2.VideoCapture(video_path)
  while True:
  times=times+1
  res,image=camera.read()
  if not res:
  print('not res,not image')
  break
  if times%frame_frequency==0:
  cv2.imwrite(outPutDirName+''+str(times)+'.jpg',image)
  print('圖片提取結(jié)束')
  camera.release()
  if __name__=="__main__":
  input_dir=r'D:datasetscow_dataset'#輸入的video文件夾位置
  save_dir=r'E:relate_codedataset'#輸出圖片到當(dāng)前目錄video文件夾下
  count=0#視頻數(shù)
  for video_name in os.listdir(input_dir):
  video_path=os.path.join(input_dir,video_name)
  outPutDirName=os.path.join(save_dir,video_name[:-4])
  threading.Thread(target=video_to_frames,args=(video_path,outPutDirName)).start()
  count=count+1
  print("%s th video has been finished!"%count)


  補充


  還可以利用Python實現(xiàn)抽取剔除視頻幀工具


  代碼


  下面是使用opencv對視頻中間幾幀抽取的方法。


  主要的思路是在讀取frame的時候,順便把幀寫下來。


  同時如果不是需要抽取剔除的幀,直接continue到下個循環(huán)。


  樣例代碼如下,主要按照MP4格式進行處理。


  #!/user/bin/env python
  #coding=utf-8
  """
  project:csdn-pro
  author:劍客阿良_ALiang
  file:test.py
  ide:PyCharm
  time:2022-06-30 17:55:48
  """
  import cv2
  #視頻抽幀
  def extract_frame(video_path:str,result_path:str,fps,weight,height,start,end):
  fourcc=cv2.VideoWriter_fourcc(*'mp4v')
  videoWriter=cv2.VideoWriter(result_path,fourcc,fps,(weight,height))
  vc=cv2.VideoCapture(video_path)
  if vc.isOpened():
  ret,frame=vc.read()
  else:
  ret=False
  count=0#count the number of pictures
  while ret:
  ret,frame=vc.read()
  if start<=count<=end:
  count+=1
  continue
  else:
  videoWriter.write(frame)
  count+=1
  print(count)
  videoWriter.release()
  vc.release()
  if __name__=='__main__':
  extract_frame('C:UsersxxxDesktop123.mp4','C:UsersxxxDesktop114.mp4',25,640,368,119,125)


  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/128691.html

相關(guān)文章

  • B站智能防擋彈幕的一種python實現(xiàn)

    摘要:將圖片的處理方法放到視頻中的每一幀,再加上彈幕飛過的效果,就完成了版的智能防擋彈幕。不知道站的實現(xiàn)方法是怎樣,是否有人工干預(yù),是否有預(yù)計算。 某天代碼寫得老眼昏花,去B站上摸魚,突然發(fā)現(xiàn)奇怪的現(xiàn)象: showImg(https://segmentfault.com/img/remote/1460000017911829?w=600&h=284); 喲呵,B站竟然做了 視頻前景提取 ,把...

    jzzlee 評論0 收藏0
  • opencv python 從攝像頭獲取視頻/從文件獲取視頻 /保存視頻

    摘要:這次開始學(xué)習(xí)從攝像頭獲取視頻使用獲取視頻要獲取視頻,需要創(chuàng)建一個對象,參數(shù)可以是設(shè)備索引攝像頭索引或視頻文件的名稱。 這次開始學(xué)習(xí)Getting Started with Videos 1從攝像頭獲取視頻 使用cv2.VideoCapture()獲取視頻. cv2.VideoCapture(builtins.object) 要獲取視頻,需要創(chuàng)建一個VideoCapture對象,參數(shù)可以...

    netmou 評論0 收藏0
  • 斯坦福新深度學(xué)習(xí)系統(tǒng) NoScope:視頻對象檢測快1000倍

    摘要:通過利用一系列利用視頻局部性的優(yōu)化,顯著降低了在每個幀上的計算量,同時仍保持常規(guī)檢索的高精度。的差異檢測器目前是使用逐幀計算的邏輯回歸模型實現(xiàn)的。這些檢測器在上的運行速度非常快,每秒超過萬幀。也就是說,每秒處理的視頻幀數(shù)超過幀。 視頻數(shù)據(jù)正在爆炸性地增長——僅英國就有超過400萬個CCTV監(jiān)控攝像頭,用戶每分鐘上傳到 YouTube 上的視頻超過300小時。深度學(xué)習(xí)的進展已經(jīng)能夠自動分析這些...

    xcold 評論0 收藏0
  • 10分鐘學(xué)會使用YOLO及Opencv實現(xiàn)目標(biāo)檢測(下)|附源碼

    摘要:摘要本文介紹使用和完成視頻流目標(biāo)檢測,代碼解釋詳細,附源碼,上手快。將應(yīng)用于視頻流對象檢測首先打開文件并插入以下代碼同樣,首先從導(dǎo)入相關(guān)數(shù)據(jù)包和命令行參數(shù)開始。 摘要:?本文介紹使用opencv和yolo完成視頻流目標(biāo)檢測,代碼解釋詳細,附源碼,上手快。 在上一節(jié)內(nèi)容中,介紹了如何將YOLO應(yīng)用于圖像目標(biāo)檢測中,那么在學(xué)會檢測單張圖像后,我們也可以利用YOLO算法實現(xiàn)視頻流中的目標(biāo)檢...

    songze 評論0 收藏0
  • 前端工程師做Face Detection

    摘要:身為一名前業(yè)務(wù)程序員和現(xiàn)前端程序員,這樣的功能還是陌生的領(lǐng)域。需求使用加攝像頭,通過人臉檢測,完成自動拍照功能。在的屏幕上,顯示攝像頭的實時畫面,要是畫面中檢測出人臉,則觸發(fā)拍照。這樣做的效果能夠獲得更高的,同時還能完成更遠距離臉部的捕獲。 因為項目原因,需要使用人臉檢測(face detection)功能。身為一名前JAVA業(yè)務(wù)程序員和現(xiàn)前端程序員,這樣的功能還是陌生的領(lǐng)域。那能不能...

    nodejh 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<