時系列で動画の強度が分かるプログラムを作りました。(intensity1とintensity2)
ここで同じ時間におけるintensity1とintensity2の強度の和をとってplotしたいのですができません。(コードをみたら分かると思います)
どうしたら良いのでしょうか?
python3
1# -*- coding: utf-8 -*- 2import cv2 3import matplotlib.pyplot as plt 4from numpy import * 5import pandas as pd 6from scipy import signal 7 8video_path = "water50_2.mkv" 9cap = cv2.VideoCapture(video_path) 10 11count = cap.get(cv2.CAP_PROP_FRAME_COUNT) 12fps = cap.get(cv2.CAP_PROP_FPS) 13 14numS=raw_input("start frame: ") 15numS=int(numS) 16 17numE=raw_input("end frame: ") 18numE=int(numE) 19#numE=count 20print(numE) 21 22# 場所を決める 23#点滅の場所 24x1min=raw_input("点滅1左上のx座標:") 25y1min=raw_input("点滅1左上のy座標:") 26x1max=raw_input("点滅1右下のx座標:") 27y1max=raw_input("点滅1右下のy座標:") 28 29X1min=int(x1min) 30Y1min=int(y1min) 31X1max=int(x1max) 32Y1max=int(y1max) 33 34x2min=raw_input("点滅2左上のx座標:") 35y2min=raw_input("点滅2左上のy座標:") 36x2max=raw_input("点滅2右下のx座標:") 37y2max=raw_input("点滅2右下のy座標:") 38 39X2min=int(x2min) 40Y2min=int(y2min) 41X2max=int(x2max) 42Y2max=int(y2max) 43 44# フレーム [numS,numE] の範囲で各フレームの [ymin, ymax]x[xmin, xmax] の画素の平均を計算する。 45frame_no = arange(numS,numE) 46intensity1 = [] 47intensity2=[] 48for i in frame_no: 49 # フレーム frame_no を取得する。 50 cap.set(cv2.CAP_PROP_POS_FRAMES, i) 51 ret, frame = cap.read() 52 if not ret: 53 print('Failed to grab frame.') 54 break 55 # 平均画素値を計算する。 56 intensity1.append(frame[Y1min:Y1max+1, X1min:X1max+1].mean()) 57 intensity2.append(frame[Y2min:Y2max+1, X2min:X2max+1].mean()) 58 print "frame number ",i 59 60 61A=array(intensity1) 62#print(D) 63B=array(intensity2) 64C=intensity1+intensity2 65print(C) 66kazu=len(C) 67print(kazu) 68#print(intensity1) 69#X=stack([intensity1,intensitynoise], axis=1) 70#print(X) 71 72#Y=sum(X) 73#print(Y) 74#Z=stack([Y,tPoints], axis=1) 75 76tPoints=arange(len(intensity1))*(1/fps) 77 78 79#plt.plot(tPoints,intensitynoise,linewidth=1,color="k") 80#Z=stack([Y,tPoints], axis=1) 81plt.grid(True) 82plt.xlabel("time(s)")#横軸を時間に 83plt.ylabel("intensity of PL") 84plt.legend(fontsize=17) 85#plt.title("1") 86plt.xlim(numS/fps,numE/fps)#開始時間、終了時間の設定 87plt.legend(loc="lower right") 88plt.title("Intensity") 89set_printoptions(threshold=inf) 90#print(vstack((tPoints,intensity1)).T) 91plt.show() 92 93plt.grid(True) 94#plt.title(Y1mintoY1max,X1mintoX1max) 95plt.title("noise:%d,%d"%(xnoisemin,ynoisemin))
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。