Skip to main content

Neuroglancer compressed_segmentation codec.

Project description

PyPI version

NOTE: This repository is the PyPI distribution repo but is based on work done by Jeremy Maitin-Shepard (Google), Stephen Plaza (Janelia Research Campus), and William Silversmith (Princeton) here: https://github.com/janelia-flyem/compressedseg

Compress Seg Picture

Library for compressing and decompressing image segmentation (adapted from neuroglancer)

This library contains routined to decompress and compress segmentation and to manipulate compressed segmentation data defined by the neuroglancer project. compressed_segmentation essentially renumbers large bit width labels to smaller ones in chunks. This provides for large reductions in memory usage and higher compression.

Note that limitations in the compressed_segmentation format restrict the size of the chunk that can be compressed. As this limitation is data dependent, for example a random array with 1024 labels passes testing at 256x256x128, but 256x256x256 often does not.

Features

  • Compression and decompression
  • (TBD) Interface to relabel and manipulate segmentation from the compressed data
  • C++, Python, and Go interface (see original repo for Golang)

C++ Compilation

Compiling as a shared library. Feel free to subsititute e.g. clang for the C++ compiler.

g++ -std=c++11 -O3 -fPIC -shared -I./include src/compress_segmentation.cc src/decompress_segmentation.cc -o compress_segmentation.so

Python Installation

pip Binary Installation

$ pip install compressed-segmentation

$ python
>>> import compressed_segmentation as cseg
>>> help(cseg)

If there are pre-built binaries available for your architecture this should just work.

pip Source Installation

If you need to build from source, you will need to have a C++ compiler installed:

$ sudo apt-get install g++ python3-dev 
$ pip install numpy
$ pip install compressed-segmentation

$ python
>>> import compressed_segmentation as cseg
>>> help(cseg)

Direct Installation

Requires a C++ compiler such as g++ or clang.

Works with both Python 2 and 3. Encodes from / decodes to 3D or 4D numpy ndarrays.

$ sudo apt-get install g++ python3-dev 
$ pip install -r requirements.txt
$ python setup.py install

$ python
>>> import compressed_segmentation as cseg
>>> help(cseg)

License

Please see the licenses in this repo.

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

compressed_segmentation-2.0.0.tar.gz (148.0 kB view hashes)

Uploaded Source

Built Distributions

compressed_segmentation-2.0.0-cp38-cp38-win_amd64.whl (94.5 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

compressed_segmentation-2.0.0-cp38-cp38-win32.whl (79.5 kB view hashes)

Uploaded CPython 3.8 Windows x86

compressed_segmentation-2.0.0-cp38-cp38-manylinux2010_x86_64.whl (666.2 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

compressed_segmentation-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl (106.7 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

compressed_segmentation-2.0.0-cp37-cp37m-win_amd64.whl (92.0 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

compressed_segmentation-2.0.0-cp37-cp37m-win32.whl (77.4 kB view hashes)

Uploaded CPython 3.7m Windows x86

compressed_segmentation-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl (612.9 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

compressed_segmentation-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl (106.3 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

compressed_segmentation-2.0.0-cp36-cp36m-win_amd64.whl (92.0 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

compressed_segmentation-2.0.0-cp36-cp36m-win32.whl (77.3 kB view hashes)

Uploaded CPython 3.6m Windows x86

compressed_segmentation-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl (613.4 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

compressed_segmentation-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl (106.1 kB view hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

compressed_segmentation-2.0.0-cp35-cp35m-manylinux2010_x86_64.whl (606.6 kB view hashes)

Uploaded CPython 3.5m manylinux: glibc 2.12+ x86-64

compressed_segmentation-2.0.0-cp27-cp27m-macosx_10_15_x86_64.whl (105.9 kB view hashes)

Uploaded CPython 2.7m macOS 10.15+ x86-64

Supported by

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