Voxel-wise difference map.

    Parameters
    ----------
    img_spec1 : str or nibabel image-like object
        MR image (or path to one) to be visualized

    img_spec2 : str or nibabel image-like object
        MR image (or path to one) to be visualized

    abs_value : bool
        Flag indicating whether to take the absolute value of the diffenence or not.
        Default: True, display absolute differences only (so order of images does not matter)

        Colormap to show the difference values.

    overlay_image : bool
        Flag to specify whether to overlay the difference values on the original image.
        .. note: This feature is not reliable and supported well yet.

    num_rows : int
        number of rows (top to bottom) per each of 3 dimensions

    num_cols : int
        number of panels (left to right) per row of each dimension.

    rescale_method : bool or str or list or None
        Range to rescale the intensity values to
        Default: 'global', min and max values computed based on ranges from both images.
        If false or None, no rescaling is done (does not work yet).

    background_threshold : float or str
        A threshold value below which all the background voxels will be set to zero.
        Default : 0.05. Other option is a string specifying a percentile: '5%', '10%'.
        Specify None if you don't want any thresholding.

    annot : str
        Text to display to annotate the visualization

    padding : int
        number of voxels to pad around each panel.

    output_path : str
        path to save the generate collage to.

    figsize : list
        Size of figure in inches to be passed on to plt.figure() e.g. [12, 12] or [20, 20]

    Returns
    -------
    fig : figure handle
        handle to the collage figure generated.

def voxelwise_diff(img_spec1=None,
                   img_spec2=None,
                   abs_value=True,
                   cmap='gray',
                   overlay_image=False,
                   overlay_alpha=0.8,
                   num_rows=2,
                   num_cols=6,
                   rescale_method='global',
                   background_threshold=0.05,
                   annot=None,
                   padding=5,
                   output_path=None,
                   figsize=None):
    """
    Voxel-wise difference map.

    Parameters
    ----------
    img_spec1 : str or nibabel image-like object
        MR image (or path to one) to be visualized

    img_spec2 : str or nibabel image-like object
        MR image (or path to one) to be visualized

    abs_value : bool
        Flag indicating whether to take the absolute value of the diffenence or not.
        Default: True, display absolute differences only (so order of images does not matter)

        Colormap to show the difference values.

    overlay_image : bool
        Flag to specify whether to overlay the difference values on the original image.
        .. note: This feature is not reliable and supported well yet.

    num_rows : int
        number of rows (top to bottom) per each of 3 dimensions

    num_cols : int
        number of panels (left to right) per row of each dimension.

    rescale_method : bool or str or list or None
        Range to rescale the intensity values to
        Default: 'global', min and max values computed based on ranges from both images.
        If false or None, no rescaling is done (does not work yet).

    background_threshold : float or str
        A threshold value below which all the background voxels will be set to zero.
        Default : 0.05. Other option is a string specifying a percentile: '5%', '10%'.
        Specify None if you don't want any thresholding.

    annot : str
        Text to display to annotate the visualization

    padding : int
        number of voxels to pad around each panel.

    output_path : str
        path to save the generate collage to.

    figsize : list
        Size of figure in inches to be passed on to plt.figure() e.g. [12, 12] or [20, 20]

    Returns
    -------
    fig : figure handle
        handle to the collage figure generated.


    """

    if not isinstance(abs_value, bool):
        abs_value = bool(abs_value)

    mixer_params = dict(abs_value=abs_value,
                        cmap=cmap,
                        overlay_image=overlay_image,
                        overlay_alpha=overlay_alpha)
    fig = _compare(img_spec1,
                   img_spec2,
                   num_rows=num_rows,
                   num_cols=num_cols,
                   mixer='voxelwise_diff',
                   annot=annot,
                   padding=padding,
                   rescale_method=rescale_method,
                   bkground_thresh=background_threshold,
                   output_path=output_path,
                   figsize=figsize,
                   **mixer_params)

    return fig