Skip to content

WaveletOperator fixes for odd-sized inputs and 1D (VectorGeometry) - #1627

Merged
paskino merged 3 commits into
TomographicImaging:wavelet_regularisationfrom
tommheik:wavelet_regularisation
Dec 18, 2023
Merged

WaveletOperator fixes for odd-sized inputs and 1D (VectorGeometry)#1627
paskino merged 3 commits into
TomographicImaging:wavelet_regularisationfrom
tommheik:wavelet_regularisation

Conversation

@tommheik

Copy link
Copy Markdown
Contributor

Describe changes

  • In adjoint, after the PyWavelet reconstruction, the array is always cut to correct size in case the domain_geometry is of odd size. The tuple of slices org_size could be created during initialization as well.
    • Channels should work as is, even if they have odd length
  • When initializing the range_geometry for 1D (VectorGeometry) data, the correct shape parameters are given.
    • Channels most likely will not work but I do not know if that behaviour is supported anyways.
  • Cleaned some old comments and added few new ones, nothing major

Describe any testing you have performed

  • No proper testing, just some of my own experiments.
  • The WaveletOperator should have a proper tests built at some point because there are so many things that can go wrong. For example
    • Check that the dimensions of input and output are correct
    • Check that odd sized arrays behave correctly
    • Check that decomposing different axes works correctly

Link relevant issues

  • All issues related to too big decomposition level are left to PyWavelets to handle. There should be a warning if very long filters are used with too small data / too big decomposition level, because this leads to nonsense coefficients.
  • In addition to axes for choosing the dimensions the operator acts on, there should be string-based correlation parameter which would define the axes similar to GradientOperator

Checklist when you are ready to request a review

  • I have no idea what I am doing

@tommheik tommheik changed the title Fixes for odd-sized inputs and 1D (VectorGeometry) WaveletOperator fixes for odd-sized inputs and 1D (VectorGeometry) Dec 17, 2023
@paskino

paskino commented Dec 18, 2023

Copy link
Copy Markdown
Contributor

@tommheik I will merge this into https://github.com/TomographicImaging/CIL/tree/wavelet_regularisation which is the wip branch. So far I implemented the L1Norm (with and without weights) and simplified the WaveletNorm (and I think I'm happy with that).

I didn't do anything on the operator yet, which is the next step.

@paskino
paskino merged commit 10dd48f into TomographicImaging:wavelet_regularisation Dec 18, 2023
@paskino paskino mentioned this pull request Dec 18, 2023
19 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants