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.2.1.tar.gz (43.4 kB view details)

Uploaded Source

Built Distribution

ncolor-1.2.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ncolor-1.2.1.tar.gz
  • Upload date:
  • Size: 43.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for ncolor-1.2.1.tar.gz
Algorithm Hash digest
SHA256 f05bfc75b8f1ea3ba9ee61c353e13146064bd63503a1655accee00a602ae2797
MD5 770a6f78a70b1a06a709607d7f4ed25e
BLAKE2b-256 a29807dcf5d1459e1b92fae5073100dad2e9626570c2ac4b8342dfb45a3d64f4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ncolor-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for ncolor-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 204b94e3508181374d7a4266c735f07c89de6e5a5229eb70fbdce7d55442d849
MD5 147ffb16d76149047efcabe674723031
BLAKE2b-256 7be7fbbe3ae9ae234e8edddcec9b0613f49ec28a8552bf7186f3dd66dace8bc2

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