Next: , Previous: , Up: Internal Routines   [Contents][Index]

#### 15.5.121 ctop

`ctop( im [, x0, y0])`

Transforms two-dimensional image `im` from Cartesian (rectangular) to polar coordinates. `im` must be of types `float` or `double`. `x0` and `y0` specify the floating-point Cartesian coordinates of the center of the polar coordinate system, which defaults to the middle of the image.

The result is another two-dimensional image of the same type as `im`. If `p = ctop(im, x0, y0)`, and if `(r, a)` are the coordinates of a pixel in the result image, then the coordinates of the corresponding pixel in `im` are ```(x0 + r*cos(a*#2pi/dimen(p,0), y0 + r*sin(a*#2pi/dimen(p,1)))```. The first dimension of the result image measures the polar angle, and the second one the polar radius. The unit of the radius is one pixel. The unit of the azimuth is `360/dimen(p,1)` degrees.

Results are included for all (integer) values of the radius for which the corresponding circle falls completely within the image `im`. The size of the second dimension of the result is equal to one more than the radius of the biggest circle (around the selected center) that falls completely within the image. The result image samples `im` at a resolution of approximately one sample per pixel. The size of the first dimension is approximately equal to `#2pi*r` if `r` is the largest included radius. The exact size of the first dimension is chosen such that it has factors only from the set 2, 3, and 5, so that Fourier transforms with `fft` in that dimension can be performed relatively quickly.

Reverse: ptoc