Accept all kernels of odd length, not just 3x3x3 Star, Ball and Full. Now we simply ask for a Array3<bool> and we use the same code for all kernels. The kernel doesn't need to be symmetric. However, the center must be true otherwise the results will be wrong. I do NOT intend to fix this.
Much faster than we were for "Generic" kernel (this concept no longer exists), but slower for Star, Ball and Full because they were hardcoded.
Fast iterations. The first iteration is the slowest (like SciPy) but all other iterations are super fast.
To hammer the speed point : we're faster than SciPy on all my benchmarks. Yes, there's a lot of optim in this PR. In fact, this is about what SciPy does plus some ideas of my own.
Big dilate/erode enhancement:
Array3<bool>
and we use the same code for all kernels. The kernel doesn't need to be symmetric. However, the center must betrue
otherwise the results will be wrong. I do NOT intend to fix this.