# v04mw.py # ||+------- VideoWriter 使用  # |+-------- numpy.maximum 使用 # +--------- 4フレーム合成 import cv2 import numpy import sys if len(sys.argv) != 3: print('usage: v03mw Readfilename Writefilename ') exit() path = sys.argv[1] cap = cv2.VideoCapture(path) fps = cap.get(cv2.CAP_PROP_FPS) print('fps',fps) w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) print('w',w) h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) print('h',h) print('FC',cap.get(cv2.CAP_PROP_FRAME_COUNT)) fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') # 動画保存時のfourcc設定(mp4用) pathw = sys.argv[2] out = cv2.VideoWriter( pathw, fourcc, fps, (w, h)) i=1 ret,img0 = cap.read() ret,img1 = cap.read() ret,img2 = cap.read() while True : print("Frame: "+ str(i)) #フレーム情報取得 ret, img = cap.read() #動画が終われば処理終了 if ret == False: break img3 = numpy.maximum( img0 ,img1) img33 = numpy.maximum( img2, img3) img4 = numpy.maximum( img33, img ) # img3 = cv2.addWeighted(src1=img0,alpha=0.6,src2=img1,beta=0.6,gamma=0) # img4 = cv2.addWeighted(src1=img3,alpha=1.0,src2=img,beta=0.6,gamma=0) #動画表示 cv2.imshow('Video0', img0) cv2.imshow('Video1', img1) cv2.imshow('VideoTemp ', img ) cv2.imshow('Video0123T', img4) out.write(img4) i +=1 img0 = img1.copy() img1 = img2.copy() img2 = img.copy() k = cv2.waitKey(1)&0xff # キー入力を待つ場合は 0 if k == ord('q'): # 「q」キーが押されたら終了する break cap.release() out.release() cv2.destroyAllWindows()