human
Complete the below
def crop_central_whiten_images(images=None, height=24, width=24):

    ''''Crop the central of image, and normailize it for test data.
    They are cropped to central of height * width pixels.
    Whiten (Normalize) the images.
    Parameters
    images : 4D Tensor
    The tensor or placeholder of images
    height : int
    The height for central crop.
    width : int
    The width for central crop.
    Returns
    result : tuple Tensor
    (Tensor for distorted images, Tensor for while loop index)
    Examples
    >>> X_train, y_train, X_test, y_test = tl.files.load_cifar10_dataset(shape=(-1, 32, 32, 3), plotable=False)
    >>> sess = tf.InteractiveSession()
    >>> batch_size = 128
    >>> x = tf.placeholder(tf.float32, shape=[batch_size, 32, 32, 3])
    >>> central_images_op = tl.preprocess.crop_central_whiten_images(images=x, height=24, width=24)
    >>> sess.run(tf.initialize_all_variables())
    >>> feed_dict={x: X_train[0:batch_size,:,:,:]}
    >>> central_images, idx = sess.run(central_images_op, feed_dict=feed_dict)
    >>> tl.visualize.images2d(X_train[0:9,:,:,:], second=2, saveable=False, name=\'cifar10\', dtype=np.uint8, fig_idx=20212)
    >>> tl.visualize.images2d(central_images[1:10,:,:,:], second=10, saveable=False, name=\'central_images\', dtype=None, fig_idx=23012)
    Notes
    The first image in \'central_images\' should be removed.
    Code References
    - ``tensorflow.models.image.cifar10.cifar10_input``'
    '''
assistant
#Here is the Python code you requested.
    print 'This    function    is    deprecated,    please    use    tf.map_fn    instead,    e.g:\n                                                            t_image    =    tf.map_fn(lambda    img:    tf.image.random_brightness(img,    max_delta=32.    /    255.),    t_image)\n                                                    t_image    =    tf.map_fn(lambda    img:    tf.image.random_contrast(img,    lower=0.5,    upper=1.5),    t_image)\n                                                    t_image    =    tf.map_fn(lambda    img:    tf.image.random_saturation(img,    lower=0.5,    upper=1.5),    t_image)\n                                                    t_image    =    tf.map_fn(lambda    img:    tf.image.random_hue(img,    max_delta=0.032),    t_image)'
    exit()
    try:
        batch_size = int(images._shape[0])
    except:
        raise Exception('unknow    batch_size    of    images')
    central_x = tf.Variable(tf.constant(0.1, shape=[1, height, width, 3]))
    i = tf.Variable(tf.constant(0))
    c = (lambda central_x, i: tf.less(i, batch_size))
    def body(central_x, i):
        image = tf.image.resize_image_with_crop_or_pad(tf.gather(images, i), height, width)
        image = tf.image.per_image_whitening(image)
        image = tf.expand_dims(image, 0)
        return (tf.concat(0, [central_x, image]), tf.add(i, 1))
    result = tf.while_loop(cond=c, body=body, loop_vars=(central_x, i), parallel_iterations=16)
    return result