-
Notifications
You must be signed in to change notification settings - Fork 143
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
WIP: Add FFTHilbertImageFilter #371
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In addition to the 2 comments, I think we should remove the application and create a wrap file. I think @acoussat does not have time to finalize this in the coming days, do you need it urgently @mathu59?
include/rtkFFTHilbertImageFilter.hxx
Outdated
{ | ||
ix = it.GetIndex(); | ||
|
||
double x = ix[0] * spacing; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a m_PixelShift
option. This will require redefining the GenerateOutputInformation()
member.
include/rtkFFTHilbertImageFilter.h
Outdated
#include "rtkFFTProjectionsConvolutionImageFilter.h" | ||
#include "rtkMacro.h" | ||
|
||
// The Set macro is redefined to clear the current FFT kernel when a parameter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is useless in thecurrent code since itkSetMacro is not used. I am suggesting to add a new member, m_PixelShift
, so it would become useful, but it's actually simpler to directly use the new definition instead of this complicated trick.
9ab87e4
to
621e02a
Compare
621e02a
to
3d0573e
Compare
I have implemented all your comments, thanks again! I have also created a test for this new filter, but it might still require some work. Specifically:
Thanks! |
Hi, Hopefully a helpful pointer (and a request :-)) for a monogenic signal filter: https://arxiv.org/abs/1703.09199 which is the multi-dimensional analog to the analytic signal from the Hilbert transform. We have an AnalyticSignalImageFilter here: https://github.com/KitwareMedical/ITKUltrasound/blob/master/include/itkAnalyticSignalImageFilter.h |
Thanks. |
@SimonRit Yes, we will make ITKUltrasound available as an ITK remote module following @dzenanz 's work to support remote module dependencies in ITK 5.2: It would be nice to also have ultrasound filters depend on the CUDA filter support in RTK. I am wondering if now is the time to create a CUDA base module, and a module for FFT extensions, e.g. analytic signal, etc. that the ultrasound and RTK modules could share as dependencies. What do you think? |
Sounds good. For CUDA, it might be easy but we should fix #296. For FFT extensions, RTK would certainly benefit from the analytic signal. We also have filters which work line-by-line or slice-by-slice, the mother class is rtk::FFTProjectionsConvolutionImageFilter. They are pretty specific to tomographic reconstruction but they might be useful in other contexts. I'm sure you'll have some changes to suggest on the code to make it better! |
I'm not sure I understand the conclusion of this discussion. Do we keep the current implementation of the Hilbert transform? Should I improve it somehow, for instance by including the analytic signal? Should it be moved somewhere, like to a module that contains FFT extensions? |
I understood that I should finish KitwareMedical/ITKUltrasound#123 before proceeding. Then we should take the parts of ITKUltrasound which overlap ones in RTK and put them in a new common module on which both ITKUltrasound and RTK would depend. |
First attempt at creating a filter to compute the Hilbert transform of an image.
A few questions:
Thanks!