POLAR_FFT Function (PV-WAVE Extreme Advantage)

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 r and q.

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, r to hold the radial FFT magnitude summation.

Theta—Specifies a variable, q 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, (r and q, respectively) provides global textural information in a 1D signal. The polar spectrum can also be evaluated for a constant r or q, which also produces a 1D signal. Statistical properties, such as the maximum, mean, and variance, of the 1D signals are useful textural descriptors.

Example

The results of this example are shown in Texture Image, Summation Plot of Polar Rho Variable, and Summation Plot of Polar Theta Variable.

; Read an image.
image = IMAGE_READ(!IP_Data + 'texture.tif')
IMAGE_DISPLAY, image
; Compute the polar FFT of the image. Get the summation along q
; and r 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

 

Texture Image

 

 

Summation Plot of Polar Rho Variable

 

 

Summation Plot of Polar Theta Variable

 

See Also

GLCM,  GLRL,  HIST_STATS