def _greyscale(image):
    """
    Convert image to greyscale if needed. If the image has more than 3 channels,
    then the average greyscale is taken. A copy of the image as greyscale is
    returned (single channel).

    Parameters
    ----------
    image : `menpo.image.Image`
        The image to convert.

    Returns
    -------
    image : `menpo.image.Image`
        A greyscale version of the image.
    """
    if image.n_channels != 1:
        if image.n_channels == 3:
            image = image.as_greyscale(mode='luminosity')
        else:
            image = image.as_greyscale(mode='average')
    return image
