Sub-pixel shifting using FFT property



Dear all,

I am new to image processing. I am trying to work out an algorithm to
shift a grayscale image using the shifting property of the FFT. The
code so far works really well if I shift my image by some full-pixel
amount.

However, if I attempt to shift the image by fractional pixel amounts,
the following things happen:

1) I end up with intensity values outside of the 0-255 range. Usually
I just force anything larger than 255 down to 255. I'm not sure what
is causing that, but I suspect the contribution of some imaginary
parts when the magnitude is taken.

2) Also there is "ringing" around some hard edge transitions. My
understanding is that these artifacts are due to Gibbs phenomenon. I
am able to mitigate some of the artifacts by applying a certain
Butterworth low-pass filter before I take the inverse transform.

Here is an example of the artifacts:

http://img341.imageshack.us/my.php?image=exwu6.png

I was wondering if anyone had some ideas about what is happening.

Thank you

.