# tf.image.per_image_standardization

Linearly scales each image in `image` to have mean 0 and variance 1.

For each 3-D image `x` in `image`, computes `(x - mean) / adjusted_stddev`, where

• `mean` is the average of all values in `x`
• `adjusted_stddev = max(stddev, 1.0/sqrt(N))` is capped away from 0 to protect against division by 0 when handling uniform images
• `N` is the number of elements in `x`
• `stddev` is the standard deviation of all values in `x`

#### Example Usage:

````image = tf.constant(np.arange(1, 13, dtype=np.int32), shape=[2, 2, 3])`
`image # 3-D tensor`
`<tf.Tensor: shape=(2, 2, 3), dtype=int32, numpy=`
`array([[[ 1,  2,  3],`
`        [ 4,  5,  6]],`
`       [[ 7,  8,  9],`
`        [10, 11, 12]]], dtype=int32)>`
`new_image = tf.image.per_image_standardization(image)`
`new_image # 3-D tensor with mean ~= 0 and variance ~= 1`
`<tf.Tensor: shape=(2, 2, 3), dtype=float32, numpy=`
`array([[[-1.593255  , -1.3035723 , -1.0138896 ],`
`        [-0.7242068 , -0.4345241 , -0.14484136]],`
`       [[ 0.14484136,  0.4345241 ,  0.7242068 ],`
`        [ 1.0138896 ,  1.3035723 ,  1.593255  ]]], dtype=float32)>`
```

`image` An n-D `Tensor` with at least 3 dimensions, the last 3 of which are the dimensions of each image.

A `Tensor` with the same shape as `image` and its dtype is `float32`.

`ValueError` The shape of `image` has fewer than 3 dimensions.

[]
[]