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

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

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

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

NumPy

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

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Q&A

1回答

1554閲覧

タイムラグを与えて相関関係をとりたい。

退会済みユーザー

退会済みユーザー

総合スコア0

Matplotlib

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

NumPy

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

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

0グッド

0クリップ

投稿2020/08/25 05:41

動画内のある点に対する他の点の強度の相関関係をマッピングするプログラムを作成しました。強度は((R+G+B)/3)としています。
コードは以下になります。

”場所を決める”と書かれている所に座標を指定します。この指定した点に対する他の全ての相関関係をマッピングしたプログラムとなっております。

ここで質問なのですが、指定した点に対するタイムラグを与えた他の箇所の相関関係を算出するためにはどのような処理を施せばよいのでしょうか?

どうしてもタイムラグを与えることができません

どなたかご教授よろしくお願い致します。

python3

1# -*- coding: utf-8 -*- 2import time 3#from urllib.request import urlretrieve 4 5import cv2 6from numpy import * 7import matplotlib.pyplot as plt 8 9start = time.time() 10 11# サンプル用動画をダウンロードする。 12video = "clean50_edit_denoise.mkv" 13#video_url = "https://github.com/opencv/opencv/raw/master/samples/data/vtest.avi" 14#urlretrieve(video_path) 15 16# 場所を決める 17#点滅の場所 18xpx=int(raw_input("点滅1 X:")) 19ypx=int(raw_input("点滅1 Y:")) 20 21lag = int(raw_input("lag (frm):")) 22 23 24# 動画の全フレームを読み込む。 25cap = cv2.VideoCapture(video) 26count = cap.get(cv2.CAP_PROP_FRAME_COUNT) # number of frames 27# 1フレームずつ取得する。 28frames = [] 29while True: 30 ret, frame = cap.read() 31 if not ret: 32 break 33 frames.append(frame) 34#print(imgs) 35#a=array(imgs) 36#print(a.shape) 37frames = array(frames) 38 39frames=mean(frames, axis=-1) 40 41# ピクセルごとに相関係数を計算する。 42x0, y0 = xpx, ypx # 対称とする点 43 44h, w = frames.shape[1:3] # 画像の幅、高さ 45vec1 = frames[:, y0, x0] 46#print(vec1) 47corr_img = empty((h, w)) 48 49for y in range(h): 50 for x in range(w): 51 vec2 = frames[:, y, x] 52 # 相関行列を計算する。 53 C = corrcoef(vec1, vec2) 54 corr_img[y, x] = C[0, 1] # x, y の相関係数 55 56#print(f"Done! {time.time() - start}s") # 66.96258449554443s 57 58#tPoints=arange(len(intensity1))*(1/fps) 59 60fig, ax = plt.subplots() 61ax.invert_yaxis() 62#im=ax.imshow(std,cmap="gray") 63ax.set_title("Correlation map ") 64#plt.pcolor(std1,cmap="jet") 65#plt.imshow(std, cmap="jet",vmin=0,vmax=32) 66plt.imshow(corr_img, cmap="jet",vmin=-1,vmax=1) 67plt.colorbar() 68plt.show()

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

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

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

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

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

guest

回答1

0

Python

1vec1 = [:, y0, x0] 2vec2 = [:, y, x]

はそれぞれ全行取ってきているのでこれを単にラグの分だけずらせばよいのでは?

Python

1lag = 10 2vec1 = [0:len(vec1)-lag, y0, x0] 3vec2 = [lag:len(vec2), y, x]

ラグの取り方がvec1, vec2で逆なら逆に

投稿2020/08/25 09:51

aokikenichi

総合スコア2240

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

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

退会済みユーザー

退会済みユーザー

2020/08/26 00:59

解答ありがとうございます。 実際にその方法を試して行ってみましたが、 File "correlation_map_only_lag.py", line 45 vec1 = [0:len(vec1)-lag, y0, x0] ^ SyntaxError: invalid syntax ------------------ とスライス部分にsyntaxエラーが生じてしまい計算の実行ができませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問