Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH dwidenoise: Spherical kernel #2742

Closed
Lestropie opened this issue Oct 29, 2023 · 1 comment
Closed

ENH dwidenoise: Spherical kernel #2742

Lestropie opened this issue Oct 29, 2023 · 1 comment

Comments

@Lestropie
Copy link
Member

Been on my list for a long time but seemingly never listed.

As performed in https://www.sciencedirect.com/science/article/pii/S1053811919305348.

A spherical kernel should:

  • Offer better rotation invariance
  • Allow precisely tuning kernel size to number of volumes for optimal estimator behaviour
  • Allow increase of kernel size at FoV edges such that kernel is always centred at voxel of interest and always of (almost?) equal size
@Lestropie
Copy link
Member Author

Lestropie commented Oct 10, 2024

  • Ideally, should be possible to denoise using either a square or spherical kernel; generic code would fill the 2D data matrix with image data from the local neighbourhood, and know how to reconstruct image data for the voxel at the centre of the kernel from the PCA components.

  • Kernel should be spherical even in the presence of voxel anisotropy; the voxels chosen for inclusion in the kernel should be based on ordering of Euclidean distances from the kernel centre.

  • Command-line option to modulate the size of the spherical kernel. What makes most sense to me is to have the number of voxels as a minimal multiple of the number of volumes, but it should also be possible to specify an absolute size.
    I say "minimal" deliberately: for a given Euclidean distance from the kernel centre there may be multiple voxels with an equivalent distance from the kernel centre. Where this happens I think that all such voxels should be included in the kernel, rather than selecting a subset of them arbitrarily in order to satisfy a kernel size target.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant