Transform: Conformal Mapping Algorithms
The methods described in this document use conformal mapping to transform points in a circular sector, circle, ellipse, or nearly circular region to points in a circle or rectangle.
Background
A conformal mapping, is a transformation w=f(z) that preserves local angles. An analytic function is conformal at any point where it has a nonzero first derivative. A complex function is analytic on a region R if it is complex differentiable at every point in R. In a conformal mapping, in any small neighborhood the relative angle and shape are preserved.
Notes
Note 1: In this text and figures , and could be also written as theta, theta2 and theta1.
Note 2: In this text and figures , and could be also written as alpha, alpha2 and alpha1.
Circular Sector to Rectangle
The algorithm uses a 2D conformal mapping to convert a circular sector, defined by four user points at the sector corners, to a rectangle of the user specified size. The circular sector has an inner radius , an outer radius , and extends over an angle radians, with .
Let, and belong to , and and belong to . The mapping to the user specified rectangle is performed in the following steps (1-6):
Step 1
The maximum radius can be facing to the top, bottom, right, or left. So the algorithm, first, determines which of 4 orientations is present.
Step 2
Calculating the center of the circular segment. The center is calculated as a point where two lines and cross. Therefore,
Equation 1
Step 3
Calculating the angle of the sector in radians.
The angle is calculated as follows
For the maximum radius facing to the left, we must take into account the discontinuity of the angle at the negative x axis. The angle changes from , so the equation for is now:
The angle is along the line from center to in to radians:
the angle is along the line from center to in radians:
Note: In this text and figures , and could be also written as \theta, \theta2 and \theta1
Step 4
For the conformal mapping, it requires that . Refer to "A Domain Decomposition Method for Conformal Mapping onto a Rectangle" Remark 4.7 (see "References" ). The transformation theory is based on a mathematical crosscut along the unit circle.
Therefore, the algorithm divides all the distances from the circular center by . It produces a value of r so that
Step 5
To convert a circular sector to a rectangle, the algorithm uses the following transformation function
Equation 2
Let
Then,
Equation 3
=>
,
Since conformal mapping requires that must be analytic on all points, the Cauchy-Riemann equations must be satisfied and must not equal zero.
Satisfying the Cauchy-Riemann equations
Suppose that is differentiable at the point z0=x0+iy0. Then, the partial derivatives of u and v exist at the point (x0, y0), and
Equation 4
Equating the real and imaginary parts gives
Equation 5
and
The Cauchy-Riemann equations in polar form are:
Equation 6
The first equation gives zero on both sides and the second equation gives on both sides, so the Cauchy-Riemann equations hold.
Satisfying the non zero first derivative
Equation 7
,
except at infinity.
Step 6
Now, the algorithm performs a conformal mapping from the circular segment to a rectangle of width 1 and height . Values for f(z1), f(z2), f(z3), and f(z4) are as follows:
Note: In the equations below "alpha" stays for .
Equation 8
Equation 9
Equation 10
Equation 11
Step 7
Then, the rectangle from step 6 is linearly scaled to a rectangle of user specified xDim and yDim. In cases when the maximum radius faces to the top, this gives us the following values for z1', z2', z3'and z4':
z1'= (xDim-1, 0),
z2'= (0, 0),
z3'= (0, yDim-1),
z4'= (xDim-1, yDim-1)
Note that the linear scaling of one rectangle to another is not a conformal mapping unless the width and height are scaled by the same factor.
Transformation: Circle to Rectangle
The algorithm uses a 2D conformal mapping to convert a circle to a rectangle of the user specified size. The circle has the radius r.
The user inputs 2 point VOIs. The first point is located at the center of the circle. The second point can be any point located on the actual circle. The user also inputs the X and Y dimensions (xDimDest and yDimDest) of the output image. See Figure 10. The algorithm performs three mappings to go from the circular area specified by the user to an output rectangle.
Mapping 1
Mapping 1 maps from the destination rectangle to a rectangle centered on the origin. This is the mapping from a rectangle with the edge points (0,0), (xDimDest-1, 0), (xDimDest-1, yDimDest-1), (0, yDimDest-1) to a rectangle with the edge points (-K,Kp), (K,Kp), (K,-Kp), (-K,-Kp).
Where K is the complete elliptic integral of the first kind using the modulus and Kp is the complete elliptic integral of the first kind using the complementary modulus:
where, the modulus m belongs to the interval [0,1] and is arbitrarily chosen as 0.5.
Mapping 2
Mapping 2 is a conformal mapping from the origin centered rectangle to the unit circle using:
Equation 12
where z is the input complex number, w is the output complex number, and cn(z, modulus) is the Jacobian Elliptic function of type cn.
Mapping 3
The algorithm scales and translates from the unit circle to the user selected circle. It uses bilinear interpolation to find the contributions from the four nearest neighbors in the original user selected circle.
Transformation: Ellipse to Circle
This algorithm performs the conformal mapping of an ellipse to a circle with the user defined radius.
Let's consider the original ellipse as having a tilt theta with the X axis. Then the conformal mapping from an ellipse to a circle is done in three following steps.
In the first step, the algorithm translates the circle from the center of the destination square image to the origin, rotates the circle by the angle -theta and converts it to a unit disc by dividing the distance from the center by the radius.
The algorithm places the center of the circle on the center of the destination image. The algorithm considers only the points located on the destination circle, e.g. (j - yc)*(j - yc) + (i - xc)*(i - xc) less or equal radSq.
Then, it translates the circle to the image origin, so that
Equation 13
After that, it rotates around the circle by the angle -theta
Equation 14
And the following step scales the circle to a unit disc:
Equation 15
<math? xrot = \frac{xrot}{radius} </math>
In the second step, it maps from the unit disc to a standard ellipse on the X axis with foci at (-1,0) (1,0) and with the same major axis/minor axis ratio as the original ellipse.
Let 2*a = major axis, 2*b = minor axis of the original ellipse.
For an ellipse with its center at the origin and foci on the X axis:
Equation 16
[x2/a2] + [y2/b2] = 1
The standard ellipse used here has foci at (-1,0) (1,0) and is of the form:
Equation 17
(x2/cosh2 (xi)) + (y2/sinh2 (xi)) = 1
To scale from the original ellipse to the standard ellipse, the algorithm uses the following transform:
Equation 18
tanh(xi) = sinh(xi)/cosh(xi) = b/a = minor axis/major axis = axisRatio
xi = arg tanh(axisRatio)
xi = 0.5 * log((1 + axisRatio)/(1 - axisRatio))
To conformal map from the unit disc to the standard ellipse, the algorithm uses the following transform T1:
Equation 19
Where, K(s) is the complete elliptic integral of the first kind and F is the incomplete or normal elliptic integral of the first kind such that:
Equation 20
Because the elliptical integral functions in MIPAV all use the form:
Equation 21
So x in the elliptical integral form used in equation 20 equals in the elliptical integral form used in MIPAV, or :
For complex z
Equation 22
To find s:
Equation 23
Where u(s)Italic text decreases from to 0 as s moves from 0 to 1.
In the third step, the algorithm maps from the standard ellipse to the original ellipse by rotating, scaling, and translating. It uses bilinear interpolation to find the contributions from the four nearest neighbors in the original ellipse space.
Transformation: Nearly Circular Region to Circle
Applying the algorithms
For the time being, please refer to the MIPAV HTML help Algorithms/TransformConformalMapping.html for the full documentation on how to apply these algorithms.
Circular Sector to Rectangle
TBD.
Circle to Rectangle
TBD.
Ellipse to Circle
TBD.
Nearly Circle to Circle
TBD.