simpleitk-image-registration
Register, segment, filter, resample 3D medical images (MRI, CT, microscopy) via SimpleITK Python; DICOM, NIfTI, multi-modal. Rigid/affine/deformable registration, threshold/region-growing segmentation, Gaussian/morph filtering, label stats, format conversion. Use to align volumes across timepoints/modalities, segment fluorescence, or convert DICOM→NIfTI.
npx skills add BioTender-max/awesome-bio-agent-skills --skill simpleitk-image-registration --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Guides an AI agent to perform registration, segmentation, filtering, and resampling of 3D medical images using SimpleITK in Python. It covers reading/writing DICOM and NIfTI formats, applying smoothing, thresholding, region-growing, and various registration methods (rigid, affine, deformable), along with resampling to a target grid and converting between image and array representations. It provides concrete code examples for I/O, filtering, registration (including multi-stage pipelines), segmentation, and post-processing.
How it works
- Read and write ITK-compatible formats (DICOM series, NIfTI) while preserving metadata.
- Module 2: Image Filtering – apply Gaussian smoothing, median filtering, gradient magnitude, normalization, histogram equalization, and bias field correction; save intermediate results.
- Module 3: Image Registration – perform rigid registration with Mutual Information metric, then optional deformable refinement using B-spline; initialize transforms with CenteredTransformInitializer; apply and save the resampled image and the transform.
- Module 3 (continued): also demonstrates an affine pre-registration followed by B-spline deformable refinement using a composite transform, then resample and save.
- Module 4: Segmentation – implement Otsu thresholding, region growing (ConnectedThreshold), ConfidenceConnected, and post-processing with morphological operations (opening, filling holes) and connected component labeling; save labeled masks.
- Module 5: Resampling and Transform Application – resample a moving image to a reference grid using a pre-computed transform; convert between SimpleITK images and NumPy arrays, including isotropic spacing resampling.
When to use it
- Align MRI/CT volumes across timepoints or to an atlas.
- Segment fluorescence or other 3D signals from microscopy or MRI data.
- Convert DICOM series to NIfTI or resample to a common resolution for downstream analysis.
- Apply pre-computed transforms to align datasets, or perform multi-stage registration (rigid/affine followed by deformable).
- Generate region statistics and label-connected components from segmented masks.
What it can touch
- Tools and formats: DICOM series, NIfTI (.nii, .nii.gz), MetaImage, NRRD, PNG, TIFF (via ITK compatibility).
- Python packages: SimpleITK, numpy, matplotlib (for basic visualization).
- It references elastix via SimpleITK-SimpleElastix optionally, and supports using antspyx for advanced multi-atlas registration outside SimpleITK.
Caveats
- License stated: Apache-2.0.
- No explicit guarantees of outcome quality; demonstrates typical parameter settings (e.g., histogram bins, iterations, and smoothing values) that may require tuning for specific data.
- Requires Python 3.8+ and adequate memory for 3D datasets; no GPU requirement noted.
# SimpleITK Image Registration and Analysis ## Overview SimpleITK is a simplified, high-level interface to the Insight Toolkit (ITK) for medical image processing. It provides Python-native access to registration (rigid, affine, B-spline, Demons), segmentation (thresholding, region growing, watershed, level sets), filtering (smoothing, morphology, gradients), and resampling for 3D/4D images from MRI, CT, ultrasound, and fluorescence microscopy. SimpleITK images carry physical space metadata (spacing, origin, direction cosines) which is critical for correct anatomical interpretation and multi-modal alignment. ## When to Use - Registering MRI volumes across timepoints (longitudinal studies) or to a standard atlas for normalization - Segmenting cells or nuclei from fluorescence microscopy using Otsu thresholding with morphological cleanup - Converting DICOM series (CT, MRI scanner output) to NIfTI format for downstream analysis with FSL or ANTs - Applying pre-computed transforms to resample images to a common resolution or field of view - Computing region statistics (volume, mean intensity, surface area) from binary label masks - Running multi-modal registration (e.g., aligning PET to
- Overview
- When to Use
- Prerequisites
- Quick Start
- Core API
- Module 1: Image I/O
- Module 2: Image Filtering
- Module 3: Image Registration
- Module 4: Segmentation
- Module 5: Resampling and Transform Application
- Module 6: Statistics and Measurement
- Key Concepts
- Physical Space vs. Pixel Space
- Transform Composition
pip install SimpleITK numpy matplotlib For additional Elastix-based registration algorithms: pip install SimpleITK-SimpleElastix
What does the simpleitk-image-registration skill do?
Register, segment, filter, resample 3D medical images (MRI, CT, microscopy) via SimpleITK Python; DICOM, NIfTI, multi-modal. Rigid/affine/deformable registration, threshold/region-growing segmentation, Gaussian/morph filtering, label stats, format conversion. Use to align volumes across timepoints/modalities, segment fluorescence, or convert DICOM→NIfTI.
How do I install it?
Run `npx skills add BioTender-max/awesome-bio-agent-skills --skill simpleitk-image-registration --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From BioTender-max/awesome-bio-agent-skills, a repository with 144 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
