I also recognized the missing imaginary part:
r*e^(i*phi) == r*(cos(phi)+i*sin(phi))
If you simplify r*e^(i*phi) to r*cos(phi) the you leave out the imaginary part. For this reason you needn't use 'conv2(imag(image))', because it's zero anyway.
So either add the imaginary part or leave out the imaginary part convolution to improve computation costs.
Or do I misapply your code?