Region Extraction using a t-statistical map (3D)

This example shows how to extract regions or separate the regions from a statistical map.

We use localizer t-statistic maps from fetch_neurovault_auditory_computation_task as an input image.

The idea is to threshold an image to get foreground objects using a function threshold_img and extract objects using a function connected_regions.

Fetching t-statistic image of localizer contrasts by loading from datasets utilities

[get_dataset_dir] Dataset found in /home/runner/nilearn_data/neurovault

Threshold the t-statistic image by importing threshold function

from nilearn.image import threshold_img

# Two types of strategies can be used from this threshold function
# Type 1: strategy used will be based on scoreatpercentile
threshold_percentile_img = threshold_img(
    tmap_filename, threshold="97%", copy=False, copy_header=True
)


# Type 2: threshold strategy used will be based on image intensity
# Here, threshold value should be within the limits i.e. less than max value.
threshold_value_img = threshold_img(
    tmap_filename, threshold=3.0, copy=False, copy_header=True
)

Visualization Showing thresholding results by importing plotting modules and its utilities

from nilearn import plotting

# Showing percentile threshold image
plotting.plot_stat_map(
    threshold_percentile_img,
    display_mode="z",
    cut_coords=5,
    title="Threshold image with string percentile",
    colorbar=False,
)

# Showing intensity threshold image
plotting.plot_stat_map(
    threshold_value_img,
    display_mode="z",
    cut_coords=5,
    title="Threshold image with intensity value",
    colorbar=False,
)
  • plot extract rois statistical maps
  • plot extract rois statistical maps
<nilearn.plotting.displays._slicers.ZSlicer object at 0x7ff576dcd310>

Extracting the regions by importing connected regions function

Visualizing region extraction results

images = [regions_percentile_img, regions_value_img]
for image, strategy in zip(images, ["percentile", "image intensity"]):
    title = (
        f"ROIs using {strategy} thresholding. "
        "Each ROI in same color is an extracted region"
    )
    plotting.plot_prob_atlas(
        image,
        bg_img=tmap_filename,
        view_type="contours",
        display_mode="z",
        cut_coords=5,
        title=title,
    )
plotting.show()
  • plot extract rois statistical maps
  • plot extract rois statistical maps
/home/runner/work/nilearn/nilearn/.tox/doc/lib/python3.9/site-packages/nilearn/plotting/displays/_axes.py:74: UserWarning:

No contour levels were found within the data range.

Total running time of the script: (0 minutes 8.090 seconds)

Estimated memory usage: 108 MB

Gallery generated by Sphinx-Gallery