日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python工具-將視頻按幀截取圖片(附代碼)

系統 1800 0

描述:將一個視頻流按幀數截取大量的圖片

用途:AI的數據集制作,得到大量的圖片,之后將其打標簽

更改的地方

1.default--間隔的幀數? ?2.input/output--輸入視頻的路徑、存放截取圖片的路徑 (將路徑放入后面的‘ ’中即可)前面加r可表示絕對路徑 eg:

            
              1
            
             args = parser.parse_args([
            
              '
            
            
              --input
            
            
              '
            
            ,r
            
              '
            
            
              F:\data_video\IMG_4395.MOV
            
            
              '
            
            ,
            
              '
            
            
              --output
            
            
              '
            
            ,r
            
              '
            
            
              F:data_rgb_pic\7video
            
            
              '
            
            ])
          

直接上代碼

            
               1
            
            
              import
            
            
               cv2

            
            
               2
            
            
              import
            
            
               argparse

            
            
               3
            
            
              import
            
            
               os

            
            
               4
            
            
              def
            
            
               parse_args():

            
            
               5
            
            
              """
            
            
               6
            
            
                  Parse input arguments

            
            
               7
            
            
              """
            
            
               8
            
                 parser = argparse.ArgumentParser(description=
            
              '
            
            
              Process pic
            
            
              '
            
            
              )

            
            
               9
            
                 parser.add_argument(
            
              '
            
            
              --input
            
            
              '
            
            , help=
            
              '
            
            
              video to process
            
            
              '
            
            , dest=
            
              '
            
            
              input
            
            
              '
            
            , default=None, type=
            
              str)

            
            
              10
            
                 parser.add_argument(
            
              '
            
            
              --output
            
            
              '
            
            , help=
            
              '
            
            
              pic to store
            
            
              '
            
            , dest=
            
              '
            
            
              output
            
            
              '
            
            , default=None, type=
            
              str)

            
            
              11
            
            
              #
            
            
              default為間隔多少幀截取一張圖片
            
            
              12
            
                 parser.add_argument(
            
              '
            
            
              --skip_frame
            
            
              '
            
            , dest=
            
              '
            
            
              skip_frame
            
            
              '
            
            , help=
            
              '
            
            
              skip number of video
            
            
              '
            
            , default=100, type=
            
              int)

            
            
              13
            
            
              #
            
            
              input為輸入視頻的路徑 ,output為輸出存放圖片的路徑
            
            
              14
            
                 args = parser.parse_args([
            
              '
            
            
              --input
            
            
              '
            
            ,
            
              ''
            
            ,
            
              '
            
            
              --output
            
            
              '
            
            ,
            
              ''
            
            
              ])

            
            
              15
            
            
              return
            
            
               args

            
            
              16
            
            
              17
            
            
              def
            
            
               process_video(i_video, o_video, num):

            
            
              18
            
                 cap =
            
               cv2.VideoCapture(i_video)

            
            
              19
            
                 num_frame =
            
               cap.get(cv2.CAP_PROP_FRAME_COUNT)

            
            
              20
            
                 expand_name = 
            
              '
            
            
              .jpg
            
            
              '
            
            
              21
            
            
              if
            
            
              not
            
            
               cap.isOpened():

            
            
              22
            
            
              print
            
            (
            
              "
            
            
              Please check the path.
            
            
              "
            
            
              )

            
            
              23
            
                 cnt =
            
               0

            
            
              24
            
                 count =
            
               0

            
            
              25
            
            
              while
            
             1
            
              :

            
            
              26
            
                     ret, frame =
            
               cap.read()

            
            
              27
            
                     cnt += 1

            
              28
            
            
              #
            
            
                how
            
            
              29
            
            
              #
            
            
               many
            
            
              30
            
            
              #
            
            
               frame
            
            
              31
            
            
              #
            
            
               to
            
            
              32
            
            
              #
            
            
               cut
            
            
              33
            
            
              if
            
             cnt % num ==
            
               0:

            
            
              34
            
                         count += 1

            
              35
            
                         cv2.imwrite(os.path.join(o_video, str(count) +
            
               expand_name), frame)

            
            
              36
            
            
              37
            
            
              if
            
            
              not
            
            
               ret:

            
            
              38
            
            
              break
            
            
              39
            
            
              40
            
            
              if
            
            
              __name__
            
             == 
            
              '
            
            
              __main__
            
            
              '
            
            
              :

            
            
              41
            
                 args =
            
               parse_args()

            
            
              42
            
            
              if
            
            
              not
            
            
               os.path.exists(args.output):

            
            
              43
            
            
                      os.makedirs(args.output)

            
            
              44
            
            
              print
            
            (
            
              '
            
            
              Called with args:
            
            
              '
            
            
              )

            
            
              45
            
            
              print
            
            
              (args)

            
            
              46
            
                 process_video(args.input, args.output, args.skip_frame)
          

參考

https://blog.csdn.net/qq_36190978/article/details/85284484


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 白银市| 昆山市| 大理市| 贵溪市| 滦平县| 太谷县| 呈贡县| 平罗县| 行唐县| 南宫市| 金湖县| 宣武区| 蕲春县| 红安县| 平塘县| 德昌县| 夏津县| 鄢陵县| 中牟县| 茶陵县| 赤城县| 江油市| 井研县| 琼中| 玉龙| 滨州市| 锡林浩特市| 广元市| 敦煌市| 安顺市| 建德市| 西乌珠穆沁旗| 望谟县| 华坪县| 鸡西市| 乐安县| 镇江市| 竹溪县| 改则县| 巴南区| 哈巴河县|