質問編集履歴
1
インデントを追加したコードに編集しました。よろしくお願いいたします。
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            実行自体は上手く行くのですが、動画のフレーム数を全て画像として抽出してしまうので、長い動画を読み込んだ際には必要以上に画像が生成されてしまいます(例えば、1000のフレームで構成された動画を読み込むと必要な写真は100枚にもかかわらず1000枚生成されてしまいます)。
         
     | 
| 
       3 
3 
     | 
    
         
             
            そこで、生成する画像の枚数を制限したいのですがどのようにコードを書き換えればよいかわかりません。どうかご教示ください。
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            from google.colab import drive
         
     | 
| 
      
 5 
     | 
    
         
            +
            ```from google.colab import drive
         
     | 
| 
       6 
6 
     | 
    
         
             
            drive.mount('/content/drive')
         
     | 
| 
       7 
7 
     | 
    
         
             
            from google.colab.patches import cv2_imshow
         
     | 
| 
       8 
8 
     | 
    
         
             
            import paddlehub as hub
         
     | 
| 
         @@ -15,15 +15,11 @@ 
     | 
|
| 
       15 
15 
     | 
    
         
             
            module = hub.Module(name="pyramidbox_lite_server_mask", version='1.1.0')
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
            def paint_chinese(im, chinese, position, fontsize, color_bgr):
         
     | 
| 
       18 
     | 
    
         
            -
                
         
     | 
| 
       19 
18 
     | 
    
         
             
                img_PIL = Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))
         
     | 
| 
       20 
19 
     | 
    
         
             
                font = ImageFont.truetype(
         
     | 
| 
       21 
20 
     | 
    
         
             
                    'SourceHanSansSC-Medium.otf', fontsize, encoding="utf-8")
         
     | 
| 
       22 
     | 
    
         
            -
                
         
     | 
| 
       23 
     | 
    
         
            -
                
         
     | 
| 
       24 
21 
     | 
    
         
             
                color = color_bgr[::-1]
         
     | 
| 
       25 
22 
     | 
    
         
             
                draw = ImageDraw.Draw(img_PIL)
         
     | 
| 
       26 
     | 
    
         
            -
               
         
     | 
| 
       27 
23 
     | 
    
         
             
                draw.text(position, chinese, font=font, fill=color)
         
     | 
| 
       28 
24 
     | 
    
         
             
                img = cv2.cvtColor(np.asarray(img_PIL), cv2.COLOR_RGB2BGR)  
         
     | 
| 
       29 
25 
     | 
    
         
             
                return img
         
     | 
| 
         @@ -67,7 +63,6 @@ 
     | 
|
| 
       67 
63 
     | 
    
         
             
                        result['data']['right']), int(result['data']['bottom']), int(
         
     | 
| 
       68 
64 
     | 
    
         
             
                            result['data']['left'])
         
     | 
| 
       69 
65 
     | 
    
         | 
| 
       70 
     | 
    
         
            -
                    
         
     | 
| 
       71 
66 
     | 
    
         
             
                    img_name = "avatar_%d.png" % (maskIndex)
         
     | 
| 
       72 
67 
     | 
    
         
             
                    path = "/content/drive/My Drive/Face/A_face/" + img_name
         
     | 
| 
       73 
68 
     | 
    
         
             
                    image = frame[top - 10:bottom + 10, left - 10:right + 10]
         
     | 
| 
         @@ -94,14 +89,10 @@ 
     | 
|
| 
       94 
89 
     | 
    
         | 
| 
       95 
90 
     | 
    
         
             
                    cv2.rectangle(frame_copy, (left, top), (right, bottom), color, 3)
         
     | 
| 
       96 
91 
     | 
    
         
             
                    cv2.putText(frame_copy, label, (left, top-10), cv2.FONT_HERSHEY_SIMPLEX, 0.8, color, 2)
         
     | 
| 
       97 
     | 
    
         
            -
                    
         
     | 
| 
       98 
92 
     | 
    
         | 
| 
       99 
93 
     | 
    
         
             
                writer.write(frame_copy)
         
     | 
| 
       100 
94 
     | 
    
         | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
95 
     | 
    
         
             
                frameData['frame'] = index
         
     | 
| 
       104 
     | 
    
         
            -
                
         
     | 
| 
       105 
96 
     | 
    
         
             
                frameData['data'] = maskFrameDatas
         
     | 
| 
       106 
97 
     | 
    
         | 
| 
       107 
98 
     | 
    
         
             
                data.append(frameData)
         
     | 
| 
         @@ -117,4 +108,11 @@ 
     | 
|
| 
       117 
108 
     | 
    
         | 
| 
       118 
109 
     | 
    
         
             
            writer.release()
         
     | 
| 
       119 
110 
     | 
    
         | 
| 
       120 
     | 
    
         
            -
            cv2.destroyAllWindows()
         
     | 
| 
      
 111 
     | 
    
         
            +
            cv2.destroyAllWindows()
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
            ```
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
            個人的にチャレンジしてみたことはindex,maskindex,fpsなどの値を変えてみたことです。frameData['frame']=index
         
     | 
| 
      
 116 
     | 
    
         
            +
             などと書かれているので、indexの値を制限すれば取得するframe数も制限されると考えました。
         
     | 
| 
      
 117 
     | 
    
         
            +
            ちなみにこのコードは以下のサイトから引用させていただきました。
         
     | 
| 
      
 118 
     | 
    
         
            +
            (https://qiita.com/ebiflyyyyyyyy/items/4f8cc781a86c3f9d8700)
         
     |