1

特定の解像度でベクトル フィールドを作成するための一連のベクトルがあります。私のベクトルは、x、y 位置、長さ、角度によって定義されます。

import numpy as np
import scipy as sp
from matplotlib.mlab import griddata
import pylab as pl

theta_array = [3,5,7,1]
length_array = [4,6,7,8]
x_array = [4,7,8,9]
y_array = [7,3,5,8]

x = np.linspace(1,10,10)
y = np.linspace(1,10,10)

new_theta = griddata(x_array,y_array,theta_array,x,y,interp='linear')
new_length = griddata(x_array,y_array,length_array,x,y,interp='linear')

(10x10)これらのベクトルの補間からベクトル フィールドを作成したいと考えています。上記はgriddatamatplotlibから使用しました。

--補間された値を含む 10x10 配列を返しますが、他の配列要素のデータと値のアイランドのみを作成します。

masked_array(data =
 [[-- -- -- -- -- -- -- -- -- --]
 [-- -- -- -- -- -- -- -- -- --]
 [-- -- -- -- -- -- 5.0 -- -- --]
 [-- -- -- -- -- -- 5.4 -- -- --]
 [-- -- -- -- -- 4.6 5.8 7.0 -- --]
 [-- -- -- -- 3.8 5.0 5.0 5.0 -- --]
 [-- -- -- 3.0 3.0 3.0 3.0 3.0 -- --]
 [-- -- -- -- -- -- -- -- 1.0 --]
 [-- -- -- -- -- -- -- -- -- --]
 [-- -- -- -- -- -- -- -- -- --]],
             mask =
 [[ True  True  True  True  True  True  True  True  True  True]
 [ True  True  True  True  True  True  True  True  True  True]
 [ True  True  True  True  True  True False  True  True  True]
 [ True  True  True  True  True  True False  True  True  True]
 [ True  True  True  True  True False False False  True  True]
 [ True  True  True  True False False False False  True  True]
 [ True  True  True False False False False False  True  True]
 [ True  True  True  True  True  True  True  True False  True]
 [ True  True  True  True  True  True  True  True  True  True]
 [ True  True  True  True  True  True  True  True  True  True]],
       fill_value = 1e+20)

すべての要素に値があり、値を持つ要素から離れるにつれて値がフェード/減少することを望みました。このように:

回転ベクトル場

これに対するフォローアップの質問は、これを別の画像に適用し、ベクトル フィールドを使用してモーフィングする方法です。

どうもありがとうございました!

4

0 に答える 0