Umm...since out of ~250000 pixels, almost all the pixels(except a few hundred corners) will remain zero and I think assigning all of them zero will take more time than the overhead encountered while initializing with `np.zeros`. I maybe wrong though.

```py
In [9]: %timeit a = np.empty((512,512),dtype=np.double)
1000000 loops, best of 3: 1.63 us per loop

In [10]: %timeit a = np.zeros((512,512),dtype=np.double)
1000 loops, best of 3: 393 us per loop
```