How are you doing the display of the images?
image(uint8(real(Result)))
looks fine to me for the images I tested with.
Result has some residual complex components, and will be of class double but with values nominally from 0 to 255 (but due to round-off you might get a slight negative value). Your original image is probably uint8(). The display routines treat double() color information differently than uint8() color, treating double() outside the range 0 to 1 as an error for 3D arrays (color images) and treating double() as 1-based indexing into the color map for 2D arrays (grayscale or two-level). uint8() 3D arrays are RGB Truecolor, and uint8() 2D arrays are 0-based indexing into the color map.
Best Answer