特定の解像度でベクトル フィールドを作成するための一連のベクトルがあります。私のベクトルは、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)
これらのベクトルの補間からベクトル フィールドを作成したいと考えています。上記はgriddata
matplotlibから使用しました。
--
補間された値を含む 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)
すべての要素に値があり、値を持つ要素から離れるにつれて値がフェード/減少することを望みました。このように:
これに対するフォローアップの質問は、これを別の画像に適用し、ベクトル フィールドを使用してモーフィングする方法です。
どうもありがとうございました!