File size: 1,050 Bytes
f392320
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import numpy as np
import time

def numpy_test(w, h, r):
    v, u = np.indices((h, w))
    theta = (u - w / 2.) * 2 * np.pi / w
    phi = (v - h / 2.) * np.pi / h
    cos_phi = np.cos(phi)
    x = cos_phi * np.sin(theta)
    y = np.sin(phi)
    z = cos_phi * np.cos(theta)
    
    ray = np.dstack((x, y, z))
    ray = ray.reshape(-1, 3).dot(r.T)
    ray.shape = (h, w, 3)
    
    x, y, z = np.dsplit(ray, 3)
    theta = np.arctan2(x, z)
    phi = np.arcsin(y)
    u = theta * w / 2 / np.pi + w / 2.
    v = phi * h / np.pi + h / 2.
    xymap = np.dstack((u, v)).astype(np.float32)
    
    return xymap

def matrix_multiplication():
    for i in range(100):
        np.random.random((1000, 1000)) @ np.random.random((1000, 1000))


if __name__ == "__main__":
    w = 3584
    h = int(w / 2)
    r = np.array([
    [0.61566148, -0.78369395, 0.08236955],
    [0.78801075, 0.61228882, -0.06435415],
    [0, 0.10452846, 0.9945219],])
    begin_time = time.time()
    # numpy_test(w, h, r)
    matrix_multiplication()
    print(time.time() - begin_time)