Skip to main content

label matrix coloring algorithm

Project description

PyPI version Downloads

ncolor bacteria

Fast remapping of instance labels 1,2,3,...,M to a smaller set of repeating, disjoint labels, 1,2,...,N. The four-color-theorem guarantees that at most four colors are required for any 2D segmentation/map, but this algorithm will opt for 5 or 6 to give an acceptable result if it fails to find a 4-color mapping quickly. Also works for 3D labels (<8 colors typically required) and perhaps higher dimensions as well.

Usage

If you have an integer array called masks, you may transform it into an N-color representation as follows:

import ncolor 
ncolor_masks = ncolor.label(masks)

If you need the number of unique labels returned:

ncolor_masks, num_labels = ncolor.label(masks,return_n=True)

If you need to convert back to 0,...,N object labels:

labels = ncolor.format_labels(ncolor_masks,clean=True)

Note that format_labels with clean=True will also remove small labels (<9px) by default. This behavior can be changed with the min_area parameter.

The integer array ncolor_masks can be visualized using any color map you prefer. The example in this README uses the viridis colormap. See example.ipynb for more details.

Thanks to Ryan Peters (@ryanirl) for suggesting the expand_labels function. This is applied by default to 2D images (optionally for 3D images with expand=True, but this can give bad results since objects in 3D have a lot more wiggle room to make contact when expanded). This preprocessing step eliminates cases where close (but not touching) or dispersed objects previously received the same label. I dug a layer back to use ndimage.distance_transform_edt for a speed boost. If undesired for 2D images, use expand=False.

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

ncolor-1.3.0.tar.gz (46.0 kB view details)

Uploaded Source

Built Distribution

ncolor-1.3.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file ncolor-1.3.0.tar.gz.

File metadata

  • Download URL: ncolor-1.3.0.tar.gz
  • Upload date:
  • Size: 46.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for ncolor-1.3.0.tar.gz
Algorithm Hash digest
SHA256 d60be3da1172a040db9e9a7c7fc22d0088acd88ceebb5f46806aa57e51bd2c62
MD5 cae07d1ee877c07cabb81ac75b650090
BLAKE2b-256 58712008ba6f792fe6c8ad5690846b602a8ee65a8068bc35931515265da7b587

See more details on using hashes here.

File details

Details for the file ncolor-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: ncolor-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for ncolor-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9f19dfe7edb2957a87481c51b8423d8984cf7fe8541330bed30aeff99db51fcf
MD5 ff371a75639cd42395fd43b49043966e
BLAKE2b-256 9a2f7da00b3399845769a66941ec61e5a6d9101ff06e098ec1ccdfa6034a8a8e

See more details on using hashes here.

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