PIMS
Python Image Sequence
What it is and what it does
PIMS abstracts away the complexity of reading scientific video and image data in many different formats. Instead of learning separate libraries for AVI files, TIFF stacks, Nikon microscope images, and numbered image sequences, you use a single consistent interface. It handles the format detection, loading, and frame access transparently, letting you focus on your image analysis rather than file I/O plumbing.
The package is built on top of established libraries like imageio, numpy, tifffile, and optional integrations with ffmpeg and Bio-formats. It supports video formats (AVI, MOV, MP4), image stacks (TIFF, JPEG, PNG), microscope vendor formats (Leica, Nikon, Olympus, Zeiss), and specialized camera formats (CINE, SEQ). You can slice frames, iterate in bulk, access specific ranges, and work with multidimensional data using the same API regardless of source.
Use it for:
- Load and iterate through frames from a microscopy experiment stored as a TIFF stack or vendor-specific format without learning format-specific APIs.
- Process video files (AVI, MOV, MP4) frame-by-frame in a scientific analysis pipeline using a consistent interface.
- Build batch image processing workflows that accept multiple input formats and automatically detect and read them.
- Access specific frame ranges or multidimensional slices from large image sequences without loading entire files into memory.
- Prototype image analysis code that needs to work with both video files and numbered image directories interchangeably.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PIMS provides a unified interface to read scientific video and image sequences from diverse formats—video files, image stacks, microscope formats, and numbered image directories—using consistent methods for accessing, slicing, and iterating through frames.
Yes, if you work with scientific video or microscopy images in multiple formats and want to avoid format-specific boilerplate. The aging maintenance status (last release 795 days ago) and high install friction mean it's best for established workflows where the dependency chain is already stable. No known vulnerabilities. Not recommended for new projects unless you specifically need multi-format support.
Install
pims on PyPI
pip
pip install pimsuv
uv add pimspoetry
poetry add pimsInstalling PIMS
Before you install
High install friction due to five runtime dependencies including imageio, numpy, and tifffile. Maintenance is aging—last release was 795 days ago (June 2024), though the repository remains active with a recent commit in March 2025. Suitable for established workflows rather than new projects.
License in practice
BSD-3-clause permissive license allows commercial and private use with minimal restrictions, requiring only license and copyright notice retention.
Quickstart
pip install pims
import pims
frames = pims.open('video.avi')
for frame in frames:
print(frame.shape)
Requires numpy and imageio; optional support for additional formats (ffmpeg, Bio-formats, Nikon .nd2) needs separate installation.
Verify before relying
- Whether Bio-formats and ffmpeg optional dependencies are straightforward to install on common systems
- Current state of support for modern microscope formats beyond those listed in the description
Package facts
| License | BSD-3-clause (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | high — source build required |
| Runtime dependencies | 5 — imageio, numpy, packaging, slicerator, tifffile |
| Maintenance | aging — 795 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 184,643/month — #10,028 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pims-0.7.tar.gz
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
imageio-ffmpegProvides a simple Python wrapper around ffmpeg…
permissive · top 5,000 on PyPI
ImageIOImageIO reads and writes images and video in…
permissive · top 1,000 on PyPI
tifffileRead and write TIFF files and TIFF-like formats…
permissive · top 1,000 on PyPI
mediapyMediapy reads, writes, and displays images and…
permissive · top 5,000 on PyPI
imagesizeReads image file headers to extract dimensions,…
permissive · top 1,000 on PyPI
large-imageLarge Image provides Python methods to…
permissive · top 15,000 on PyPI
OpenImageIOOpenImageIO reads, writes, and processes images…
permissive · top 15,000 on PyPI
crewai-filesProvides file type abstractions for CrewAI…
unclear · top 15,000 on PyPI
FileseqParses frame ranges and file sequences using…
permissive · top 15,000 on PyPI
ome-typesParse and manipulate OME-XML microscopy…
permissive · top 15,000 on PyPI