This page is a reference documentation. It only explains the function signature, and not how to use it. Please refer to the user guide for the big picture.


nilearn.image.binarize_img(img, threshold=0, mask_img=None, two_sided=True, copy_header=False)[source]

Binarize an image such that its values are either 0 or 1.

Added in version 0.8.1.

imga 3D/4D Niimg-like object

Image which should be binarized.

thresholdfloat or str

If float, we threshold the image based on image intensities meaning voxels which have intensities greater than this value will be kept. The given value should be within the range of minimum and maximum intensity of the input image. If string, it should finish with percent sign e.g. “80%” and we threshold based on the score obtained using this percentile on the image data. The voxels which have intensities greater than this score will be kept. The given string should be within the range of “0%” to “100%”.

mask_imgNiimg-like object, default=None

Mask image applied to mask the input data. If None, no masking will be applied.


If True, threshold is applied to the absolute value of the image. If False, threshold is applied to the original value of the image.

Added in version 0.10.3.

copy_headerbool, default=False

Whether to copy the header of the input image to the output.

Added in version 0.11.0.

This parameter will be set to True by default in 0.13.0.


Binarized version of the given input image. Output dtype is int.

See also


To simply threshold but not binarize images.


Let’s load an image using nilearn datasets module:

>>> from nilearn import datasets
>>> anatomical_image = datasets.load_mni152_template()

Now we binarize it, generating a pseudo brainmask:

>>> from nilearn.image import binarize_img
>>> img = binarize_img(anatomical_image, copy_header=True)