質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1332閲覧

配列同士の足し算ができない。要素が増えてしまう結果となる

退会済みユーザー

退会済みユーザー

総合スコア0

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/09/29 06:51

時系列で動画の強度が分かるプログラムを作りました。(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))

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

せっかくndarrayにしているのですから、C = A + B で良いでしょう。

Python

1>>> lst1 = [1, 2, 3] 2>>> lst2 = [10, 20, 30] 3>>> 4>>> lst1 + lst2 5[1, 2, 3, 10, 20, 30] 6>>> 7>>> arr1 = np.array(lst1) 8>>> arr2 = np.array(lst2) 9>>> 10>>> arr1 + arr2 11array([11, 22, 33])

投稿2019/09/29 06:55

編集2019/09/29 06:57
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問