teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

インデントを追加したコードに編集しました。よろしくお願いいたします。

2020/07/19 09:36

投稿

Keiti
Keiti

スコア5

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)