This is some Java code that implements an ImageJ plugin.
It performs a filtering of an image with a kernel corresponding to a type of MRI acquisition scheme.
In some biomedical imaging techniques, the measurements are not directly related to the imaging space. That is the case of MRI or some tomography techniques such as PET. A reconstruction technique is required to get an image from them. The first step of such a technique is often to perform the operation that is the adjoint of the measurement operation. This offers the advantage to get data in the space (image) domain, even if it is not directly representative of the original data.
In MRI, the measurement scheme depends on the so-called k-space trajectory. For the simplest scheme that cover a full cartesian grid, the measurement operation is simply a Fourier transform. Then, its adjoint allows to perform perfect reconstruction. It is not that simple for non-cartesian or undersampled k-space trajectories. However, it has been shown that the measurement operation followed by its adjoint is a filtering. The corresponding convolution kernel only depends on the k-space samples. The kernel shape permits an understanding of the origin of artifacts of reconstruction.
This plugin will filter an input image (representative of an MRI sample). You will have to choose a type of k-space trajectory. Depending on the choice and the input image size, a k-space trajectory is generated. The convolution kernel is computed and the ouput image is displayed. This works only for images of dimensions that are power of two.
Figure 1. Example of images obtained with the plugin. From left to rigth: original image, selected k-space trajectory, corresponding convolution kernel and resulting image.
This code was only tested with ImageJ 1.41 . It is possible that earlier version are not able to run it properly.
This code is probably buggy. Do not hesitate to contact me for questions or comments.