Closed rmd13 closed 3 years ago
Hi, the second argument is a mask of voxels that are to be spared, i.e. will not be removed. They are still included in the neighbourhood checking, so the results of all three commands will be different: 1) use "mask" to mark voxels to be excluded, but use them for checking 2) compute skeleton, then apply "mask" to skeleton 3) apply "mask" to original data, then skeletonize masked data
We used the second argument e.g. to mark cell bodies vs. cell processes - with variants 2) and 3), the result would be incorrect.
Hi, If so, then Skeleton3D(bin,mask) is same with Skeleton3D(bin) + mask? Is there a demo for the 2nd argument? Thanks
Suppose bin is a shape of oval, mask is also a oval, and they overlap. The region can be named as: A: bin-specific binary volume B: bin and mask shared binary volume C: mask specific volume.
Then Skeleton3D(bin,mask) will generate a structure that with A thinned to a thread, but B and C remains the same?
Yes, that should be the case - A gets thinned, but B not because it is not masked. C is not processed at all since it is only in the mask argument. Regarding the previous question, the second case is different, since the result of the skeletonization may differ in the voxels directly neighbouring the mask (the mask is not thinned, which may affect the neighbourhood queries in later iterations.)
Hi, I am a little bit confused about the second argument mask: It seems that mask is another layer of binary operation. If so, does the three commands below are equivalent?
skel = Skeleton3D(bin,mask)
skel = Skeleton3D(bin) .* mask
skel = Skeleton3D(bin.*mask)
Thanks