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

質問編集履歴

2

文法修正

2019/11/18 08:58

投稿

yohehe
yohehe

スコア48

title CHANGED
File without changes
body CHANGED
@@ -40,6 +40,8 @@
40
40
 
41
41
 
42
42
  以下追記いたしました。どのようなコードにthreading処理を組み込みたいかについてです。
43
+
44
+
43
45
  以下のようにcv2を用いてPCにおいて画面表示をしながら、任意のフレーム数をリストに格納し、格納したデータについてthreading処理を並列で処理したいと考えています。その際に画面のカメラ画像を止めずにバックグラウンドで処理したいのですが、今のところ試してはいるのですが、画面表示がやや止まる印象がありますので質問させていただきました。
44
46
 
45
47
 

1

どのようなコードに組み込みたいか追記いたしました。

2019/11/18 08:58

投稿

yohehe
yohehe

スコア48

title CHANGED
File without changes
body CHANGED
@@ -36,4 +36,75 @@
36
36
  thread_1.start()
37
37
  thread_2.start()
38
38
  コード
39
+ ```
40
+
41
+
42
+ 以下追記いたしました。どのようなコードにthreading処理を組み込みたいかについてです。
43
+ 以下のようにcv2を用いてPCにおいて画面表示をしながら、任意のフレーム数をリストに格納し、格納したデータについてthreading処理を並列で処理したいと考えています。その際に画面のカメラ画像を止めずにバックグラウンドで処理したいのですが、今のところ試してはいるのですが、画面表示がやや止まる印象がありますので質問させていただきました。
44
+
45
+
46
+
47
+ ```python
48
+ import numpy as np
49
+ import cv2
50
+ import matplotlib.pyplot as plt
51
+ import time
52
+ #カメラを設定
53
+ cap = cv2.VideoCapture(0)
54
+ frame_width = int(cap.get(3))
55
+ frame_height = int(cap.get(4))
56
+
57
+ #mp4で保存するため、以下を設定
58
+ out = cv2.VideoWriter('test_.mp4',cv2.VideoWriter_fourcc('M','P','4','V'), 30, (frame_width,frame_height))
59
+
60
+
61
+ count=0
62
+ frames_list=[]
63
+ #---------------------------------
64
+ while(True):
65
+ ret, frame = cap.read()
66
+ if ret == True:
67
+
68
+ # Write the frame into the file 'output.avi'
69
+ #out.write(frame)
70
+
71
+ # Display the resulting frame
72
+ cv2.imshow('frame',frame)
73
+
74
+ #-----------------------------------------------------------------
75
+ #50フレーム格納すると処理を行うプログラムを実行する。
76
+ frames_list.append(frame)
77
+ count = count + 1
78
+ if count == 50:
79
+
80
+ print("150フレーム分取得,predict開始")
81
+ time_sta=time.time() #時間を計測する
82
+ frames_extracted=np.array(frames_list)
83
+
84
+ #------------------------------------------
85
+ #ここで取得したframe_listに対して並列処理を行いたいです。
86
+ #------------------------------------------
87
+
88
+
89
+ #処理が終了したため、frames_listを空にする
90
+ frames_list=[]
91
+ print("listを空にしました",len(frames_list))
92
+ #countを0に戻す
93
+ count=0
94
+
95
+ # Press Q on keyboard to stop recording
96
+ if cv2.waitKey(1) & 0xFF == ord('q'):
97
+ break
98
+
99
+ # Break the loop
100
+ else:
101
+ break
102
+
103
+ # When everything done, release the video capture and video write objects
104
+ cap.release()
105
+ out.release()
106
+
107
+ # Closes all the frames
108
+ cv2.destroyAllWindows()
109
+
39
110
  ```