Skip to main content

Read Olympus image files (OIF and OIB)

Project description

Oiffile is a Python library to read image and metadata from Olympus Image Format files. OIF is the native file format of the Olympus FluoView(tm) software for confocal microscopy.

There are two variants of the format:

  • OIF (Olympus Image File) is a multi-file format that includes a main setting file (.oif) and an associated directory with data and setting files (.tif, .bmp, .txt, .pty, .roi, and .lut).

  • OIB (Olympus Image Binary) is a compound document file, storing OIF and associated files within a single file.

Author:

Christoph Gohlke

License:

BSD-3-Clause

Version:

2025.5.10

Quickstart

Install the oiffile package and all dependencies from the Python Package Index:

python -m pip install -U "oiffile[all]"

View image and metadata stored in an OIF or OIB file:

python -m oiffile file.oif

See Examples for using the programming interface.

Source code and support are available on GitHub.

Requirements

This revision was tested with the following requirements and dependencies (other versions may work):

Revisions

2025.5.10

  • Remove doctest command line option.

  • Support Python 3.14.

2025.1.1

  • Improve type hints.

  • Drop support for Python 3.9, support Python 3.13.

2024.5.24

  • Support NumPy 2.

  • Fix docstring examples not correctly rendered on GitHub.

2023.8.30

  • Fix linting issues.

  • Add py.typed marker.

  • Drop support for Python 3.8 and numpy < 1.22 (NEP29).

2022.9.29

  • Switch to Google style docstrings.

2022.2.2

  • Add type hints.

  • Add main function.

  • Add FileSystemAbc abstract base class.

  • Remove OifFile.tiffs (breaking).

  • Drop support for Python 3.7 and numpy < 1.19 (NEP29).

2021.6.6

  • Fix unclosed file warnings.

2020.9.18

  • Remove support for Python 3.6 (NEP 29).

  • Support os.PathLike file names.

  • Fix unclosed files.

2020.1.18

  • Fix indentation error.

2020.1.1

  • Support multiple image series.

  • Parse shape and dtype from settings file.

  • Remove support for Python 2.7 and 3.5.

  • Update copyright.

Notes

No specification document is available.

Tested only with files produced on Olympus FV1000 hardware.

Examples

Read the image from an OIB file as numpy array:

>>> image = imread('test.oib')
>>> image.shape
(3, 256, 256)
>>> image[:, 95, 216]
array([820,  50, 436], dtype=uint16)

Read the image from a single TIFF file in an OIB file:

>>> from tifffile import natural_sorted
>>> with OifFile('test.oib') as oib:
...     filename = natural_sorted(oib.glob('*.tif'))[0]
...     image = oib.asarray(filename)
...
>>> filename
'Storage00001/s_C001.tif'
>>> print(image[95, 216])
820

Access metadata and the OIB main file:

>>> with OifFile('test.oib') as oib:
...     oib.axes
...     oib.shape
...     oib.dtype
...     dataname = oib.mainfile['File Info']['DataName']
...
'CYX'
(3, 256, 256)
dtype('uint16')
>>> dataname
'Cell 1 mitoEGFP.oib'

Extract the OIB file content to an OIF file and associated data directory:

>>> import tempfile
>>> tempdir = tempfile.mkdtemp()
>>> oib2oif('test.oib', location=tempdir)
Saving ... done.

Read the image from the extracted OIF file:

>>> image = imread(f'{tempdir}/{dataname[:-4]}.oif')
>>> image[:, 95, 216]
array([820,  50, 436], dtype=uint16)

Read OLE compound file and access the ‘OibInfo.txt’ settings file:

>>> with CompoundFile('test.oib') as com:
...     info = com.open_file('OibInfo.txt')
...     len(com.files())
...
14
>>> info = SettingsFile(info, 'OibInfo.txt')
>>> info['OibSaveInfo']['Version']
'2.0.0.0'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oiffile-2025.5.10.tar.gz (168.1 kB view details)

Uploaded Source

Built Distribution

oiffile-2025.5.10-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file oiffile-2025.5.10.tar.gz.

File metadata

  • Download URL: oiffile-2025.5.10.tar.gz
  • Upload date:
  • Size: 168.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for oiffile-2025.5.10.tar.gz
Algorithm Hash digest
SHA256 c49a0474cdaa6942be3814c63e00d2510cd2fcc287496f3171ba56cb2d01c9f6
MD5 6e6964a16eb2fe7dd72d91449970cdc1
BLAKE2b-256 cea456e0f3b14dc9c88434eebb34dcce5c153769397a9d41f48573af8719ca3c

See more details on using hashes here.

File details

Details for the file oiffile-2025.5.10-py3-none-any.whl.

File metadata

  • Download URL: oiffile-2025.5.10-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for oiffile-2025.5.10-py3-none-any.whl
Algorithm Hash digest
SHA256 e0700f2ac78292e0607463c6ff38462a3b63f5837e94f0436a5532ce08ea4d4f
MD5 a3657c47be024c533da44a7ded0955da
BLAKE2b-256 5386e5873c114d1f0dc42684232cc76ca5261e1d1a983846abb2156d4d99ee38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page