def METHOD_NAME( input_image, cx, cy, csize, outsize, rot, tflux=6, sflux=0.3, iflux=0.2 ):
    rt2 = math.sqrt( 2.0 )
    csize = csize * ( 1.0 + random.uniform( -sflux, sflux ) )
    boxsize = int( csize * rt2 )
    halfbox = int( boxsize / 2 )
    ul = np.array( [random.randint(-tflux,tflux)+cx-halfbox, random.randint(-tflux,tflux)+cy-halfbox] ).astype(int)
    lr = np.array( [ul[0]+boxsize, ul[1]+boxsize] ).astype(int)
    crop = np.asarray(input_image.crop((ul[0],ul[1],lr[0],lr[1])))
    halfboxsize = boxsize / 2.0
    A = cv2.getRotationMatrix2D( (halfboxsize, halfboxsize), rot, 1.0 )
    rcrop = cv2.warpAffine( crop, A, (boxsize,boxsize))
    halfcsize = csize / 2.0
    ul = np.array([int(halfboxsize - halfcsize), int(halfboxsize - halfcsize)])
    lr = np.array([int(halfboxsize + halfcsize), int(halfboxsize + halfcsize)])
    rcrop = rcrop[ul[1]:lr[1],ul[0]:lr[0]]
    iaug = ( rcrop + ( 255 * random.uniform( -iflux, iflux ) ) ) * ( 1.0 + random.uniform( -iflux, iflux ) )
    iaug[ iaug > 255 ] = 255
    iaug[ iaug < 0 ] = 0
    crop = cv2.resize(iaug,tuple([outsize,outsize]))
    return crop