Spaces:
Paused
Paused
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) |