Open thouis opened 11 years ago
What did you expect the result to be?
The default is that the structuring element is::
np.ones([
[0,1,0],
[1,1,1],
[0,1,0]])
It's late in the day, so I could be misthinking this, but it seems that greyscale erosion should result in zero-valued areas to become -1.
I was confused. However, it's not clear from the docs the difference between the structuring element neighborhood and structuring element value. Is the SE neighborhood all nonzero entries, or are they denoted some other way?
Ok, I think the problem might be the documentation.
mahotas uses the pymorph convention (I maintain pymorph, but I didn't start it; so, I inherited this convention): the structuring element is its values, except that the lowest possible value (-2147483648 in np.int32) indicates minus infinity.
I am not sure I completely buy this convention, but I adopted it.
Ok. This was partly me not understanding the generalization of binary erosion to grayscale, having only used it with 0-height structuring elements. You might document that as well, for confused people like me.
I'll try to submit a PR to the docs sometime next week, if you don't get to it.
I am not entirely sure my comment fits here, but when I perform phase separation through erosion and dilation, I get completely different results from scipy. Further testing with particle image velocimetry image pairs yields results that were not suitable for further processing. Perhaps, following a convention like scipy would be better? Or am I simply misinterpreting the results and need to scale them in some fashion?
Booleans are fine.