前提・実現したいこと
python3.8を使用しています
self.process_detectionで物体検出し、検出後20番目(self.j=20)を別の画像解析の関数で処理し終わり次第self.j=21に変わりループを抜け2週目に入ります。
ここで質問ですが現在、video.write(color_image)で画像1枚1枚を連結市動画としているのですがループをを抜けると(2週目)保存しているcolor_imageがファイル名を変えない限り回数を重ねるごとにリセットされてしまいます。ファイル名を変えずに1,2週目と連続で同じファイルで動画保存したいのですがどうしたらいいのでしょうか。
宜しくおねがいします。
該当のソースコード
python3.8
1 2#Realsense起動に必要なものを呼び出し、以降capでvideocaptureライクに呼び出せる 3cap = RealsenseCapture() 4while True: 5 cap.start() 6 cap.read() 7 a += 1 8 row += 1 9 print(a,'週目') 10 class CAMDEMO: 11 def __init__ (self): 12 self.j = 0 13 self.zentai = 0 14 15 def Realsense(self): 16 net = cv2.dnn.readNetFromDarknet(modelConfiguration, modelWeights)#modelのパス 17 net.setPreferableBackend(cv2.dnn.DNN_BACKEND_OPENCV) 18 net.setPreferableTarget(cv2.dnn.DNN_TARGET_CPU) 19 20 try: 21 while True: 22 depth_color_frame = rs.colorizer().colorize(cap.depth_frame) 23 #画像データに変換 24 color_image = np.asanyarray(cap.color_frame.get_data()) 25 depth_image = np.asanyarray(depth_color_frame.get_data()) 26 blob = cv2.dnn.blobFromImage(color_image, 1/255, (640, 480), [0,0,0],1,crop=False) 27 net.setInput(blob) 28 outs = net.forward(self.getOutputsNames(net)) 29 # Apply colormap on depth image (image must be converted to 8-bit per pixel first) 30 #物体の検出を行っている 31 self.process_detection(color_image,outs) 32 # Show images 33 images = np.hstack((color_image,depth_image)) 34 cv2.imshow('Yolo in RealSense made by Tony', images) 35 #ここで 36 video.write(color_image) # 1フレームずつ書き込み=動画の作成 37 if self.j == 20:#別の関数でself.jが20になったらここにくる 38 self.j += 1 39 if self.j >= 21: 40 break 41 key = cv2.waitKey(1) 42 if key & 0xFF == ord('q'): 43 sys.exit() 44 45 46 finally: 47 # Stop streaming 48 video.release() 49 cap.release() 50
> 1,2週目と連続で同じファイルで動画保存したい
一週目のファイルに2週目を追記したい、ということですね?
ご返信ありがとうございます。
そうですね、動画を1つにしたいということです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー