次のようにIは、3-D numpyのアレイflow
を有する:スピードアップ各xに対して角度計算を、マトリックス中のY点
flow = np.random.uniform(low=-1.0, high=1.0, size=(720,1280,2))
# Suppose flow[0] are x-coordinates. flow[1] are y-coordinates.
はそれぞれX、Yポイントの角度を計算する必要があります。ここで私はそれを実装している方法です。
def calcAngle(a):
assert(len(a) == 2)
(x, y) = a
# angle_deg = 0
angle_deg = np.angle(x + y * 1j, deg=True)
return angle_deg
fangle = np.apply_along_axis(calcAngle, axis=2, arr=flow)
# The above statement takes 14.0389318466 to execute
各点での角度の計算は、私のMacBook Pro上で実行するために14.0389318466 seconds
かかります。
おそらく、各ピクセルを1つずつ処理するのではなく、いくつかのマトリックス操作を使用して、これを高速化できる方法はありますか?
ありがとう!あなたが指定した行列ソリューションを既に試してみたところ、何らかのエラーが発生していると思いました。たぶん私は早く間違いをした。 – vishal