예제 #1
0
def yCos(parm, r=0):
    """
    parm: (amp,freq,phase,mean)
    amp * N.sin(freq*r + phase(deg)) + mean
    r:    degree (not radian!!)
    """
    a, b, c, d = parm
    r = U.deg2rad(r)
    c = U.deg2rad(c)
    return a * N.cos(b * r + c) + d
예제 #2
0
def yCos(parm, r=0):
    """
    parm: (amp,freq,phase,mean)
    amp * N.sin(freq*r + phase(deg)) + mean
    r:    degree (not radian!!)
    """
    a, b, c, d = parm
    r = U.deg2rad(r)
    c = U.deg2rad(c)
    return  a * N.cos(b*r + c) + d
예제 #3
0
def transformMatrix(rot=0.0, mag=1.0):
    """
    retrn invmat
    """
    rotRadian = N.pi / 180. * rot
    cosTheta = N.cos(rotRadian)
    sinTheta = N.sin(rotRadian)
    affmatrix = N.array([[cosTheta, sinTheta], [-sinTheta, cosTheta]]) * mag
    invmat = N.linalg.inv(affmatrix)

    return invmat
예제 #4
0
def transformMatrix(rot=0.0, mag=1.0):
    """
    retrn invmat
    """
    rotRadian = N.pi / 180. * rot
    cosTheta = N.cos(rotRadian)
    sinTheta = N.sin(rotRadian)
    affmatrix = N.array([ [cosTheta, sinTheta], [-sinTheta, cosTheta] ]) * mag
    invmat = N.linalg.inv(affmatrix)

    return invmat
예제 #5
0
def logpolar(image, center=None, angles=None, radii=None):
    """Return log-polar transformed image and log base."""
    shape = image.shape
    if center is None:
        center = shape[0] / 2, shape[1] / 2
    if angles is None:
        angles = shape[0]
    if radii is None:
        radii = shape[1]
    theta = N.zeros((angles, radii), dtype=N.float64)
    theta.T[:] = -N.linspace(0, N.pi, angles, endpoint=False)
    #d = radii
    d = N.hypot(shape[0] - center[0], shape[1] - center[1])
    log_base = 10.0**(N.log10(d) / (radii))
    radius = N.empty_like(theta)
    radius[:] = N.power(log_base, N.arange(radii, dtype=N.float64)) - 1.0
    x = radius * N.sin(theta) + center[0]
    y = radius * N.cos(theta) + center[1]
    output = N.zeros_like(x)
    ndii.map_coordinates(image, [x, y], output=output)
    return output, log_base
예제 #6
0
def logpolar(image, center=None, angles=None, radii=None):
    """Return log-polar transformed image and log base."""
    shape = image.shape
    if center is None:
        center = shape[0] / 2, shape[1] / 2
    if angles is None:
        angles = shape[0]
    if radii is None:
        radii = shape[1]
    theta = N.zeros((angles, radii), dtype=N.float64)
    theta.T[:] = -N.linspace(0, N.pi, angles, endpoint=False)
    #d = radii
    d = N.hypot(shape[0]-center[0], shape[1]-center[1])
    log_base = 10.0 ** (N.log10(d) / (radii))
    radius = N.empty_like(theta)
    radius[:] = N.power(log_base, N.arange(radii,
                                                   dtype=N.float64)) - 1.0
    x = radius * N.sin(theta) + center[0]
    y = radius * N.cos(theta) + center[1]
    output = N.zeros_like(x)
    ndii.map_coordinates(image, [x, y], output=output)
    return output, log_base