POLAR_FFT Function
Transforms the FFT of an image or images from a rectangular-coordinate space into a polar-coordinate space, and then sums the polar FFT along ρ and θ.
Usage
result = POLAR_FFT(image)
Input Parameters
image—A 2D or 3D array containing an image; or image, row, or pixel-interleaved images.
Returned Value
result—A complex array of the same dimensions and interleaving as the image array, which contains the FFT in a polar-coordinate system.
Keywords
Intleave—A scalar string indicating the type of interleaving of 3D input image arrays. Valid strings and the corresponding interleaving methods are:
*'pixel'—The input array arrangement is (pxy) for p  pixel-interleaved images of x-by-y.
*'row'—The 3D image array arrangement is (xpy) for p  row-interleaved images of x-by-y.
*'image'—The 3D image array arrangement is (xyp) for p  image-interleaved images of x-by-y.
Rho—Specifies a variable, ρ to hold the radial FFT magnitude summation.
Theta—Specifies a variable, θ to hold the angular FFT magnitude summation.
Discussion
The POLAR_FFT function is a spectral approach to texture description. Periodic patterns within an image typically appear as peaks in the Fourier spectrum of the image. These peaks provide information about the periodic patterns, or texture, of the image, such as the direction and the spatial period. Determining pattern direction and spatial period, however, is simplified by expressing the spectrum in a polar coordinate system. The summation of the polar spectrum along either the radius or the angle component, (ρ and θ, respectively) provides global textural information in a 1D signal. The polar spectrum can also be evaluated for a constant ρ or θ, which also produces a 1D signal. Statistical properties, such as the maximum, mean, and variance, of the 1D signals are useful textural descriptors.
Example
; Read an image.
image = IMAGE_READ(!IP_Data + 'texture.tif')
IMAGE_DISPLAY, image
; Compute the polar FFT of the image. Get the summation along θ
; and ρ as output variables.
image_fft = POLAR_FFT(image('pixels'), Theta = theta_sum, $
Rho = rho_sum)
; Plot the 1D signals. Peaks in the signals indicate texture 
; periodicity and direction.
PLOT, rho_sum
PLOT, theta_sum
; Compute statistics for this textural feature.
texture_stats = FLTARR(3)
texture_stats(0) = MAX(rho_sum)
texture_stats(1) = AVG(rho_sum)
texture_stats(2) = STDEV(rho_sum, /Variance)
PRINT, texture_stats
 
Figure 11-3: Texture Image
 
Figure 11-4: Summation Plot of Polar Rho Variable
 
Figure 11-5: Summation Plot of Polar Theta Variable
See Also