Open bpavie opened 4 years ago
That's an imagej-ops
issue, I believe.
The distanceTransform
ops (which are used by the watershed
op) have a rather restrictive conforms()
check:
Your sample image is 35206 * 42619
pixels, and the ops will only match if:
(x*x) + (y*y) < Integer.MAX_VALUE
There is currently no ops implementation that matches for the given request.
Thanks a lot for your quick answer!
So it means we cannot perform this ops on image with more than Integer.MAX_VALUE/2 pixels (so no more than 1,073,741,823, or roughly 32,000*32,000).
Is there any reason for this limit, because it should be more linked to the memory size available. It looks like somewhere in the code, an int array is used in this ops with a length equal of the number of the pixel in the image, which probably explain this limitation since java array length are limited to Integer.MAX_VALUE , could it be modified to store them into a List to avoid this limitation? It looks to me like an old imagej1 limitation...
Benjamin
I ran the following macro
which work on small dataset image_test_small.zip but not if the image is large (image_test.zip.
The output error for the large image is the following: