Hi,
I'm trying to find a way of using bicubic interpolation with FLIRT, to this end I have written a Matlab wrapper for FLIRT that imports the transform matrix and passes it to Matlab's imtransform. The problem is that it requires two runs of FLIRT to get the right translation, i.e. the first, affine run of FLIRT almost always gets the rotation, scaling, etc. right, but the translational component of the transform seems to make no sense at all. However, if I produce an intermediate image with this information, and then run FLIRT again on this image with a standard rigid body registration, it seems to return the right translation. I have attached a small Matlab program that was used for reverse engineering the transform format, and that illustrates this behavior.
I really need bicubic interpolation, since FLIRT is to serve as a reference algorithm in my work, and the other codes produce images that are much less blurry, hence a comparison would be of little value without this. Also, since speed is major comparison metric, it would look much better if it could be done with only one run of FLIRT.
I know a similar question has been asked before on this mailing list, but was hoping that someone had found a way of using FLIRT with Matlab in the meantime, or knows of a different way of getting higher-order interpolation.
Thank you.
Stian Johnsen
|