Three points:
1- I don't understand why it worked before with standard Cython numpy array type syntax but it doesn't work with MemoryViews.
2- I don't declare the type of `shape`, so when I say `shape = image_zyx.shape`, shouldn't it just infer the type rather than complain? Rather it looks like `image_zyx` is (somehow) a `Py_ssize_t [8]` and the compiler complains that `.` is implicitly trying to cast it as a Python object and failing. I really don't understand this.
3- There's a [whole bunch](https://gist.github.com/jni/5599357) of other compilation errors caused just by switching from the old syntax to the MemoryView syntax, which, @stefanv claims represents exactly the same numpy arrays.

Heeeeelp! =P