mergechannels 0.1.2__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mergechannels might be problematic. Click here for more details.
- {mergechannels-0.1.2 → mergechannels-0.3.0}/Cargo.lock +9 -2
- {mergechannels-0.1.2 → mergechannels-0.3.0}/Cargo.toml +2 -1
- {mergechannels-0.1.2 → mergechannels-0.3.0}/PKG-INFO +52 -22
- {mergechannels-0.1.2 → mergechannels-0.3.0}/README.md +48 -21
- mergechannels-0.3.0/assets/christ_luts/LICENSE +21 -0
- mergechannels-0.3.0/assets/converted/Circus Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Green.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Ink Black.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Ink Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Ink Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Ink Green.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Ink Mint.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Ink Purple.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Ink Yellow.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Mint.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Purple.txt +256 -0
- mergechannels-0.3.0/assets/converted/Circus Yellow.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Green.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Intense Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Intense Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Intense Green.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Intense Mint.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Intense Purple.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Intense Yellow.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Mint.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Purple.txt +256 -0
- mergechannels-0.3.0/assets/converted/Duo Yellow.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=0.25 inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=0.25.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=0.50 inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=0.50.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=0.75 inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=0.75.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=1.00 inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=1.25 inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=1.25.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=1.50 inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=1.50.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=1.75 inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=1.75.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=2.00 inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Grays g=2.00.txt +256 -0
- mergechannels-0.3.0/assets/converted/Green Hot.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Black.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Green.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Mint.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Purple.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Wash Black.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Wash Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Wash Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Wash Green.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Wash Mint.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Wash Purple.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Wash Yellow.txt +256 -0
- mergechannels-0.3.0/assets/converted/Ink Yellow.txt +256 -0
- mergechannels-0.3.0/assets/converted/Parabolic RGB.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Bold Green-Magenta.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Bold Ink Green-Magenta.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Bold Ink Mint-Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Bold Ink Yellow-Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Bold Mint-Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Bold Yellow-Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Green-Magenta.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Ink Green-Magenta.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Ink Mint-Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Ink Yellow-Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Mint-Cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Phase Yellow-Cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop blue inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop blue.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop cherry inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop cherry.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop cyan inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop cyan.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop green inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop green.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop lavender inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop magenta inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop magenta.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop mint inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop mint.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop purple inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop purple.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop red inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop red.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop yellow inverted.txt +256 -0
- mergechannels-0.3.0/assets/converted/Pop yellow.txt +256 -0
- mergechannels-0.3.0/assets/converted/Quartetto MYGB Blue.txt +256 -0
- mergechannels-0.3.0/assets/converted/Quartetto MYGB Green.txt +256 -0
- mergechannels-0.3.0/assets/converted/Quartetto MYGB Magenta.txt +256 -0
- mergechannels-0.3.0/assets/converted/Quartetto MYGB Yellow.txt +256 -0
- mergechannels-0.3.0/assets/converted/Quartetto RYGB Blue.txt +256 -0
- mergechannels-0.3.0/assets/converted/Quartetto RYGB Green.txt +256 -0
- mergechannels-0.3.0/assets/converted/Quartetto RYGB Red.txt +256 -0
- mergechannels-0.3.0/assets/converted/Quartetto RYGB Yellow.txt +256 -0
- mergechannels-0.3.0/assets/converted/Spectrum Parabolic Ramp.txt +256 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Green.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Ink Black.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Ink Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Ink Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Ink Green.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Ink Mint.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Ink Purple.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Ink Yellow.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Mint.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Purple.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Circus Yellow.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Green.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Intense Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Intense Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Intense Green.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Intense Mint.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Intense Purple.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Intense Yellow.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Mint.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Purple.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Duo Yellow.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=0.25 inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=0.25.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=0.50 inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=0.50.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=0.75 inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=0.75.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=1.00 inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=1.25 inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=1.25.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=1.50 inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=1.50.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=1.75 inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=1.75.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=2.00 inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Grays g=2.00.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Black.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Green.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Mint.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Purple.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Wash Black.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Wash Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Wash Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Wash Green.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Wash Mint.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Wash Purple.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Wash Yellow.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Ink Yellow.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Parabolic RGB.lut +256 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Bold Green-Magenta.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Bold Ink Green-Magenta.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Bold Ink Mint-Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Bold Ink Yellow-Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Bold Mint-Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Bold Yellow-Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Green-Magenta.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Ink Green-Magenta.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Ink Mint-Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Ink Yellow-Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Mint-Cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Phase Yellow-Cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop blue inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop blue.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop cherry inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop cherry.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop cyan inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop cyan.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop green inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop green.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop lavender inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop magenta inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop magenta.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop mint inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop mint.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop purple inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop purple.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop red inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop red.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop yellow inverted.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Pop yellow.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Quartetto MYGB Blue.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Quartetto MYGB Green.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Quartetto MYGB Magenta.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Quartetto MYGB Yellow.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Quartetto RYGB Blue.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Quartetto RYGB Green.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Quartetto RYGB Red.lut +0 -0
- mergechannels-0.3.0/assets/jdm_luts/Quartetto RYGB Yellow.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/pyproject.toml +7 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/pytests/test_colorize.py +50 -10
- {mergechannels-0.1.2 → mergechannels-0.3.0}/python/mergechannels/__init__.py +5 -5
- mergechannels-0.3.0/python/mergechannels/__init__.pyi +30 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/python/mergechannels/_internal.py +25 -7
- mergechannels-0.3.0/python/mergechannels/_luts.py +177 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/src/blend.rs +43 -8
- mergechannels-0.3.0/src/cmaps.rs +45343 -0
- mergechannels-0.3.0/src/colorize.rs +397 -0
- mergechannels-0.3.0/src/interface.rs +239 -0
- mergechannels-0.3.0/src/lib.rs +15 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/uv.lock +217 -2
- mergechannels-0.1.2/python/mergechannels/__init__.pyi +0 -27
- mergechannels-0.1.2/python/mergechannels/_luts.py +0 -81
- mergechannels-0.1.2/src/cmaps.rs +0 -20191
- mergechannels-0.1.2/src/colorize.rs +0 -64
- mergechannels-0.1.2/src/interface.rs +0 -36
- mergechannels-0.1.2/src/lib.rs +0 -15
- {mergechannels-0.1.2 → mergechannels-0.3.0}/.gitattributes +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/.github/workflows/CI.yml +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/.gitignore +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/.pre-commit-config.yaml +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/LICENSE +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/16_colors.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/5_ramps.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/6_shades.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/Cyan Hot.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/Green Fire Blue.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/HiLo.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/ICA.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/ICA2.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/ICA3.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/Magenta Hot.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/Orange Hot.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/Rainbow RGB.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/Red Hot.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/Thermal.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/Yellow Hot.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/blue_orange_icb.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/brgbcmyw.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/cool.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/edges.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/gem.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/glasbey.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/glasbey_inverted.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/glasbey_on_dark.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/glow.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/mpl-inferno.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/mpl-magma.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/mpl-plasma.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/mpl-viridis.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/phase.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/physics.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/royal.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/sepia.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/smart.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/thal.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/thallium.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/builtin_luts/unionjack.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/3color-BMR.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/3color-CGY.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/3color-RMB.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/3color-YGC.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/BOP blue.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/BOP orange.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/BOP purple.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/I Blue.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/I Bordeaux.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/I Cyan.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/I Forest.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/I Green.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/I Magenta.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/I Purple.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/I Red.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/I Yellow.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/NOTICE +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/OPF fresh.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/OPF orange.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/OPF purple.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/christ_luts/Turbo.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/16_colors.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/3-3-2 RGB.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/3color-BMR.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/3color-CGY.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/3color-RMB.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/3color-YGC.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/5_ramps.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/6_shades.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/BOP blue.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/BOP orange.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/BOP purple.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Blue.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Cyan Hot.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Cyan.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Fire.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Grays.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Green Fire Blue.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Green.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/HiLo.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/I Blue.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/I Bordeaux.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/I Cyan.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/I Forest.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/I Green.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/I Magenta.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/I Purple.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/I Red.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/I Yellow.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/ICA.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/ICA2.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/ICA3.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Ice.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Magenta Hot.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Magenta.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/OIMB1.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/OIMB2.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/OIMB3.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/OPF fresh.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/OPF orange.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/OPF purple.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Orange Hot.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Rainbow RGB.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Red Hot.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Red%Green.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Red.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Spectrum.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Thermal.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Turbo.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Yellow Hot.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/Yellow.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/betterBlue.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/betterCyan.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/betterGreen.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/betterOrange.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/betterRed.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/betterYellow.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/blue_orange_icb.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/brgbcmyw.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/cool.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/edges.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/gem.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/glasbey.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/glasbey_inverted.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/glasbey_on_dark.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/glow.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/mpl-inferno.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/mpl-magma.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/mpl-plasma.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/mpl-viridis.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/phase.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/physics.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/royal.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/sepia.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/smart.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/thal.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/thallium.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/converted/unionjack.txt +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/zac_luts/OIMB1.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/zac_luts/OIMB2.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/zac_luts/OIMB3.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/zac_luts/betterBlue.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/zac_luts/betterCyan.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/zac_luts/betterGreen.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/zac_luts/betterOrange.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/zac_luts/betterRed.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/assets/zac_luts/betterYellow.lut +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/python/mergechannels/_blending.py +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/python/mergechannels/py.typed +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/ruff.toml +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/scripts/convert_luts_to_txt.ijm +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/scripts/populate_luts.py +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/src/normalize.rs +0 -0
- {mergechannels-0.1.2 → mergechannels-0.3.0}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# This file is automatically @generated by Cargo.
|
|
2
2
|
# It is not intended for manual editing.
|
|
3
|
-
version =
|
|
3
|
+
version = 4
|
|
4
4
|
|
|
5
5
|
[[package]]
|
|
6
6
|
name = "autocfg"
|
|
@@ -59,12 +59,13 @@ dependencies = [
|
|
|
59
59
|
|
|
60
60
|
[[package]]
|
|
61
61
|
name = "mergechannels"
|
|
62
|
-
version = "0.
|
|
62
|
+
version = "0.3.0"
|
|
63
63
|
dependencies = [
|
|
64
64
|
"lazy_static",
|
|
65
65
|
"ndarray",
|
|
66
66
|
"numpy",
|
|
67
67
|
"pyo3",
|
|
68
|
+
"smallvec",
|
|
68
69
|
]
|
|
69
70
|
|
|
70
71
|
[[package]]
|
|
@@ -239,6 +240,12 @@ version = "2.1.1"
|
|
|
239
240
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
240
241
|
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
|
|
241
242
|
|
|
243
|
+
[[package]]
|
|
244
|
+
name = "smallvec"
|
|
245
|
+
version = "1.15.0"
|
|
246
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
247
|
+
checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9"
|
|
248
|
+
|
|
242
249
|
[[package]]
|
|
243
250
|
name = "syn"
|
|
244
251
|
version = "2.0.98"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "mergechannels"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.3.0"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
|
|
6
6
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
@@ -13,3 +13,4 @@ lazy_static = "1.5.0"
|
|
|
13
13
|
ndarray = "0.16.1"
|
|
14
14
|
numpy = "0.24.0"
|
|
15
15
|
pyo3 = "0.24.1"
|
|
16
|
+
smallvec = "1.15.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mergechannels
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
@@ -12,7 +12,10 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Requires-Dist: numpy>1.25.0
|
|
15
|
+
Provides-Extra: nvim
|
|
15
16
|
License-File: LICENSE
|
|
17
|
+
Summary: Apply and merge colormaps
|
|
18
|
+
Author-email: Zac Swider <zac.swider@gmail.com>
|
|
16
19
|
License: MIT
|
|
17
20
|
Requires-Python: >=3.9, <=3.13
|
|
18
21
|
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
@@ -60,8 +63,7 @@ plt.show()
|
|
|
60
63
|
print(colorized.shape, colorized.dtype)
|
|
61
64
|
>> (512, 512, 3) uint8
|
|
62
65
|
```
|
|
63
|
-

|
|
66
|
+

|
|
65
67
|
|
|
66
68
|
|
|
67
69
|
### apply a different colormap to each channel
|
|
@@ -71,38 +73,66 @@ import matplotlib.pyplot as plt
|
|
|
71
73
|
import mergechannels as mc
|
|
72
74
|
|
|
73
75
|
cells, nuclei = data.cells3d().max(axis=0)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
assert cells.dtype == 'uint16' and nuclei.dtype == 'uint16'
|
|
77
|
+
fig, axes = plt.subplots(1, 2, figsize=(3, 6), dpi=300)
|
|
78
|
+
for ax in axes.ravel(): ax.axis('off')
|
|
79
|
+
(a, b) = axes.ravel()
|
|
80
|
+
a.imshow(mc.merge([cells, nuclei],['Orange Hot', 'Cyan Hot']))
|
|
81
|
+
b.imshow(mc.merge([cells, nuclei],['I Blue', 'I Forest'], blending='min'))
|
|
82
|
+
fig.tight_layout()
|
|
83
|
+
plt.show()
|
|
84
|
+
```
|
|
85
|
+

|
|
76
86
|
|
|
77
|
-
|
|
87
|
+
### apply a colormap to a whole stack
|
|
88
|
+
```python
|
|
89
|
+
from skimage import data
|
|
90
|
+
from matplotlib import pyplot as plt
|
|
91
|
+
import mergechannels as mc
|
|
92
|
+
|
|
93
|
+
volume = data.cells3d()
|
|
94
|
+
cells = volume[:, 0]
|
|
95
|
+
nuclei = volume[:, 1]
|
|
96
|
+
merged = mc.merge([cells, nuclei],['Orange Hot', 'Cyan Hot'])
|
|
97
|
+
plt.imshow(merged[24]); plt.show()
|
|
98
|
+
```
|
|
99
|
+

|
|
100
|
+
|
|
101
|
+
### adjust the saturation limits when applying colormaps
|
|
102
|
+
``` python
|
|
103
|
+
from skimage import data
|
|
104
|
+
import matplotlib.pyplot as plt
|
|
105
|
+
import mergechannels as mc
|
|
106
|
+
|
|
107
|
+
cells, nuclei = data.cells3d().max(axis=0)
|
|
108
|
+
channels = [cells, nuclei]
|
|
109
|
+
colormaps = ['I Blue', 'I Forest']
|
|
110
|
+
fig, axes = plt.subplots(1, 2, figsize=(3, 6), dpi=300)
|
|
78
111
|
for ax in axes.ravel(): ax.axis('off')
|
|
79
|
-
(a, b
|
|
80
|
-
a.imshow(
|
|
81
|
-
b.imshow(
|
|
82
|
-
c.imshow(
|
|
83
|
-
mc.merge(
|
|
84
|
-
[cells, nuclei],
|
|
85
|
-
['Orange Hot', 'Cyan Hot'], # maximum blending is the default
|
|
86
|
-
),
|
|
87
|
-
)
|
|
88
|
-
d.imshow(
|
|
112
|
+
(a, b) = axes.ravel()
|
|
113
|
+
a.imshow(mc.merge(channels, colormaps, blending='min'))
|
|
114
|
+
b.imshow(
|
|
89
115
|
mc.merge(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
blending='min',
|
|
116
|
+
channels,
|
|
117
|
+
colormaps,
|
|
118
|
+
blending='min',
|
|
119
|
+
saturation_limits=(
|
|
120
|
+
0.01, # bottom 1% of pixels set to black point
|
|
121
|
+
0.97, # top 3% of pixels set to white point
|
|
122
|
+
),
|
|
93
123
|
),
|
|
94
124
|
)
|
|
95
125
|
fig.tight_layout()
|
|
96
126
|
plt.show()
|
|
97
127
|
```
|
|
98
|
-

|
|
99
129
|
|
|
100
130
|
|
|
101
131
|
## Roadmap
|
|
102
|
-
mergechannels is currently incredibly simple. It can apply one or more colormaps to one or more 2D 8-bit images and that's it.
|
|
132
|
+
mergechannels is currently incredibly simple. It can apply one or more colormaps to one or more 2D and 3D 8-bit or 16-bit images and that's it.
|
|
103
133
|
- Add support for any numerical dtype
|
|
104
|
-
- Add support for 3D images
|
|
105
134
|
- Add option to return any colormap as a matplotlib colormap
|
|
135
|
+
- Add option to pass external colormaps to mergechannels
|
|
106
136
|
- Add support for directly passing matplotlib colormaps instead of colormap names
|
|
107
137
|
- Parallelize colormap application on large images (if it's helpful)
|
|
108
138
|
- Add option to overlay binary or instance masks onto colorized images
|
|
@@ -41,8 +41,7 @@ plt.show()
|
|
|
41
41
|
print(colorized.shape, colorized.dtype)
|
|
42
42
|
>> (512, 512, 3) uint8
|
|
43
43
|
```
|
|
44
|
-

|
|
44
|
+

|
|
46
45
|
|
|
47
46
|
|
|
48
47
|
### apply a different colormap to each channel
|
|
@@ -52,38 +51,66 @@ import matplotlib.pyplot as plt
|
|
|
52
51
|
import mergechannels as mc
|
|
53
52
|
|
|
54
53
|
cells, nuclei = data.cells3d().max(axis=0)
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
assert cells.dtype == 'uint16' and nuclei.dtype == 'uint16'
|
|
55
|
+
fig, axes = plt.subplots(1, 2, figsize=(3, 6), dpi=300)
|
|
56
|
+
for ax in axes.ravel(): ax.axis('off')
|
|
57
|
+
(a, b) = axes.ravel()
|
|
58
|
+
a.imshow(mc.merge([cells, nuclei],['Orange Hot', 'Cyan Hot']))
|
|
59
|
+
b.imshow(mc.merge([cells, nuclei],['I Blue', 'I Forest'], blending='min'))
|
|
60
|
+
fig.tight_layout()
|
|
61
|
+
plt.show()
|
|
62
|
+
```
|
|
63
|
+

|
|
57
64
|
|
|
58
|
-
|
|
65
|
+
### apply a colormap to a whole stack
|
|
66
|
+
```python
|
|
67
|
+
from skimage import data
|
|
68
|
+
from matplotlib import pyplot as plt
|
|
69
|
+
import mergechannels as mc
|
|
70
|
+
|
|
71
|
+
volume = data.cells3d()
|
|
72
|
+
cells = volume[:, 0]
|
|
73
|
+
nuclei = volume[:, 1]
|
|
74
|
+
merged = mc.merge([cells, nuclei],['Orange Hot', 'Cyan Hot'])
|
|
75
|
+
plt.imshow(merged[24]); plt.show()
|
|
76
|
+
```
|
|
77
|
+

|
|
78
|
+
|
|
79
|
+
### adjust the saturation limits when applying colormaps
|
|
80
|
+
``` python
|
|
81
|
+
from skimage import data
|
|
82
|
+
import matplotlib.pyplot as plt
|
|
83
|
+
import mergechannels as mc
|
|
84
|
+
|
|
85
|
+
cells, nuclei = data.cells3d().max(axis=0)
|
|
86
|
+
channels = [cells, nuclei]
|
|
87
|
+
colormaps = ['I Blue', 'I Forest']
|
|
88
|
+
fig, axes = plt.subplots(1, 2, figsize=(3, 6), dpi=300)
|
|
59
89
|
for ax in axes.ravel(): ax.axis('off')
|
|
60
|
-
(a, b
|
|
61
|
-
a.imshow(
|
|
62
|
-
b.imshow(
|
|
63
|
-
c.imshow(
|
|
64
|
-
mc.merge(
|
|
65
|
-
[cells, nuclei],
|
|
66
|
-
['Orange Hot', 'Cyan Hot'], # maximum blending is the default
|
|
67
|
-
),
|
|
68
|
-
)
|
|
69
|
-
d.imshow(
|
|
90
|
+
(a, b) = axes.ravel()
|
|
91
|
+
a.imshow(mc.merge(channels, colormaps, blending='min'))
|
|
92
|
+
b.imshow(
|
|
70
93
|
mc.merge(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
blending='min',
|
|
94
|
+
channels,
|
|
95
|
+
colormaps,
|
|
96
|
+
blending='min',
|
|
97
|
+
saturation_limits=(
|
|
98
|
+
0.01, # bottom 1% of pixels set to black point
|
|
99
|
+
0.97, # top 3% of pixels set to white point
|
|
100
|
+
),
|
|
74
101
|
),
|
|
75
102
|
)
|
|
76
103
|
fig.tight_layout()
|
|
77
104
|
plt.show()
|
|
78
105
|
```
|
|
79
|
-

|
|
80
107
|
|
|
81
108
|
|
|
82
109
|
## Roadmap
|
|
83
|
-
mergechannels is currently incredibly simple. It can apply one or more colormaps to one or more 2D 8-bit images and that's it.
|
|
110
|
+
mergechannels is currently incredibly simple. It can apply one or more colormaps to one or more 2D and 3D 8-bit or 16-bit images and that's it.
|
|
84
111
|
- Add support for any numerical dtype
|
|
85
|
-
- Add support for 3D images
|
|
86
112
|
- Add option to return any colormap as a matplotlib colormap
|
|
113
|
+
- Add option to pass external colormaps to mergechannels
|
|
87
114
|
- Add support for directly passing matplotlib colormaps instead of colormap names
|
|
88
115
|
- Parallelize colormap application on large images (if it's helpful)
|
|
89
116
|
- Add option to overlay binary or instance masks onto colorized images
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Christophe Leterrier
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
0 0 0
|
|
2
|
+
3 0 0
|
|
3
|
+
5 1 0
|
|
4
|
+
8 1 0
|
|
5
|
+
10 1 0
|
|
6
|
+
13 2 1
|
|
7
|
+
15 2 1
|
|
8
|
+
17 2 1
|
|
9
|
+
20 3 2
|
|
10
|
+
22 3 2
|
|
11
|
+
24 3 2
|
|
12
|
+
26 4 3
|
|
13
|
+
28 4 3
|
|
14
|
+
30 5 4
|
|
15
|
+
33 5 5
|
|
16
|
+
35 5 5
|
|
17
|
+
37 6 6
|
|
18
|
+
39 6 6
|
|
19
|
+
41 6 7
|
|
20
|
+
43 7 8
|
|
21
|
+
44 7 8
|
|
22
|
+
46 8 9
|
|
23
|
+
48 8 10
|
|
24
|
+
50 8 10
|
|
25
|
+
52 9 11
|
|
26
|
+
54 9 12
|
|
27
|
+
56 10 13
|
|
28
|
+
57 10 14
|
|
29
|
+
59 11 14
|
|
30
|
+
61 11 15
|
|
31
|
+
63 11 16
|
|
32
|
+
64 12 17
|
|
33
|
+
66 12 18
|
|
34
|
+
68 13 19
|
|
35
|
+
69 13 20
|
|
36
|
+
71 14 20
|
|
37
|
+
73 14 21
|
|
38
|
+
74 15 22
|
|
39
|
+
76 15 23
|
|
40
|
+
77 16 24
|
|
41
|
+
79 16 25
|
|
42
|
+
80 17 26
|
|
43
|
+
82 17 27
|
|
44
|
+
84 17 28
|
|
45
|
+
85 18 29
|
|
46
|
+
87 18 30
|
|
47
|
+
88 19 31
|
|
48
|
+
90 19 32
|
|
49
|
+
91 20 33
|
|
50
|
+
92 20 34
|
|
51
|
+
94 21 35
|
|
52
|
+
95 22 36
|
|
53
|
+
97 22 37
|
|
54
|
+
98 23 38
|
|
55
|
+
100 23 39
|
|
56
|
+
101 24 40
|
|
57
|
+
102 24 41
|
|
58
|
+
104 25 43
|
|
59
|
+
105 25 44
|
|
60
|
+
106 26 45
|
|
61
|
+
108 26 46
|
|
62
|
+
109 27 47
|
|
63
|
+
110 27 48
|
|
64
|
+
112 28 49
|
|
65
|
+
113 29 50
|
|
66
|
+
114 29 51
|
|
67
|
+
116 30 53
|
|
68
|
+
117 30 54
|
|
69
|
+
118 31 55
|
|
70
|
+
120 32 56
|
|
71
|
+
121 32 57
|
|
72
|
+
122 33 58
|
|
73
|
+
123 33 59
|
|
74
|
+
124 34 61
|
|
75
|
+
126 35 62
|
|
76
|
+
127 35 63
|
|
77
|
+
128 36 64
|
|
78
|
+
129 36 65
|
|
79
|
+
131 37 66
|
|
80
|
+
132 38 68
|
|
81
|
+
133 38 69
|
|
82
|
+
134 39 70
|
|
83
|
+
135 40 71
|
|
84
|
+
136 40 72
|
|
85
|
+
137 41 74
|
|
86
|
+
139 42 75
|
|
87
|
+
140 42 76
|
|
88
|
+
141 43 77
|
|
89
|
+
142 44 78
|
|
90
|
+
143 44 80
|
|
91
|
+
144 45 81
|
|
92
|
+
145 46 82
|
|
93
|
+
146 46 83
|
|
94
|
+
147 47 84
|
|
95
|
+
149 48 86
|
|
96
|
+
150 48 87
|
|
97
|
+
151 49 88
|
|
98
|
+
152 50 89
|
|
99
|
+
153 51 91
|
|
100
|
+
154 51 92
|
|
101
|
+
155 52 93
|
|
102
|
+
156 53 94
|
|
103
|
+
157 54 96
|
|
104
|
+
158 54 97
|
|
105
|
+
159 55 98
|
|
106
|
+
160 56 99
|
|
107
|
+
161 57 101
|
|
108
|
+
162 57 102
|
|
109
|
+
163 58 103
|
|
110
|
+
164 59 104
|
|
111
|
+
165 60 106
|
|
112
|
+
166 60 107
|
|
113
|
+
167 61 108
|
|
114
|
+
168 62 109
|
|
115
|
+
169 63 111
|
|
116
|
+
170 64 112
|
|
117
|
+
171 64 113
|
|
118
|
+
171 65 114
|
|
119
|
+
172 66 116
|
|
120
|
+
173 67 117
|
|
121
|
+
174 68 118
|
|
122
|
+
175 69 119
|
|
123
|
+
176 69 121
|
|
124
|
+
177 70 122
|
|
125
|
+
178 71 123
|
|
126
|
+
179 72 124
|
|
127
|
+
180 73 126
|
|
128
|
+
180 74 127
|
|
129
|
+
181 75 128
|
|
130
|
+
182 75 129
|
|
131
|
+
183 76 131
|
|
132
|
+
184 77 132
|
|
133
|
+
185 78 133
|
|
134
|
+
186 79 134
|
|
135
|
+
186 80 136
|
|
136
|
+
187 81 137
|
|
137
|
+
188 82 138
|
|
138
|
+
189 83 139
|
|
139
|
+
190 84 141
|
|
140
|
+
191 84 142
|
|
141
|
+
191 85 143
|
|
142
|
+
192 86 144
|
|
143
|
+
193 87 146
|
|
144
|
+
194 88 147
|
|
145
|
+
195 89 148
|
|
146
|
+
195 90 149
|
|
147
|
+
196 91 151
|
|
148
|
+
197 92 152
|
|
149
|
+
198 93 153
|
|
150
|
+
198 94 154
|
|
151
|
+
199 95 156
|
|
152
|
+
200 96 157
|
|
153
|
+
201 97 158
|
|
154
|
+
201 98 159
|
|
155
|
+
202 99 161
|
|
156
|
+
203 100 162
|
|
157
|
+
204 101 163
|
|
158
|
+
204 102 164
|
|
159
|
+
205 103 166
|
|
160
|
+
206 104 167
|
|
161
|
+
207 105 168
|
|
162
|
+
207 106 169
|
|
163
|
+
208 108 171
|
|
164
|
+
209 109 172
|
|
165
|
+
209 110 173
|
|
166
|
+
210 111 174
|
|
167
|
+
211 112 175
|
|
168
|
+
211 113 177
|
|
169
|
+
212 114 178
|
|
170
|
+
213 115 179
|
|
171
|
+
213 116 180
|
|
172
|
+
214 118 181
|
|
173
|
+
215 119 183
|
|
174
|
+
215 120 184
|
|
175
|
+
216 121 185
|
|
176
|
+
217 122 186
|
|
177
|
+
217 123 187
|
|
178
|
+
218 124 189
|
|
179
|
+
219 126 190
|
|
180
|
+
219 127 191
|
|
181
|
+
220 128 192
|
|
182
|
+
220 129 193
|
|
183
|
+
221 131 194
|
|
184
|
+
222 132 196
|
|
185
|
+
222 133 197
|
|
186
|
+
223 134 198
|
|
187
|
+
223 135 199
|
|
188
|
+
224 137 200
|
|
189
|
+
225 138 201
|
|
190
|
+
225 139 202
|
|
191
|
+
226 141 204
|
|
192
|
+
226 142 205
|
|
193
|
+
227 143 206
|
|
194
|
+
228 145 207
|
|
195
|
+
228 146 208
|
|
196
|
+
229 147 209
|
|
197
|
+
229 149 210
|
|
198
|
+
230 150 211
|
|
199
|
+
230 151 212
|
|
200
|
+
231 153 214
|
|
201
|
+
231 154 215
|
|
202
|
+
232 155 216
|
|
203
|
+
232 157 217
|
|
204
|
+
233 158 218
|
|
205
|
+
233 160 219
|
|
206
|
+
234 161 220
|
|
207
|
+
235 163 221
|
|
208
|
+
235 164 222
|
|
209
|
+
236 165 223
|
|
210
|
+
236 167 224
|
|
211
|
+
237 168 225
|
|
212
|
+
237 170 226
|
|
213
|
+
238 171 227
|
|
214
|
+
238 173 228
|
|
215
|
+
238 175 229
|
|
216
|
+
239 176 230
|
|
217
|
+
239 178 231
|
|
218
|
+
240 179 232
|
|
219
|
+
240 181 233
|
|
220
|
+
241 182 234
|
|
221
|
+
241 184 235
|
|
222
|
+
242 186 235
|
|
223
|
+
242 187 236
|
|
224
|
+
243 189 237
|
|
225
|
+
243 191 238
|
|
226
|
+
244 192 239
|
|
227
|
+
244 194 240
|
|
228
|
+
244 196 241
|
|
229
|
+
245 198 241
|
|
230
|
+
245 199 242
|
|
231
|
+
246 201 243
|
|
232
|
+
246 203 244
|
|
233
|
+
247 205 245
|
|
234
|
+
247 207 245
|
|
235
|
+
247 209 246
|
|
236
|
+
248 211 247
|
|
237
|
+
248 212 247
|
|
238
|
+
249 214 248
|
|
239
|
+
249 216 249
|
|
240
|
+
249 218 249
|
|
241
|
+
250 220 250
|
|
242
|
+
250 222 250
|
|
243
|
+
250 225 251
|
|
244
|
+
251 227 252
|
|
245
|
+
251 229 252
|
|
246
|
+
252 231 253
|
|
247
|
+
252 233 253
|
|
248
|
+
252 235 253
|
|
249
|
+
253 238 254
|
|
250
|
+
253 240 254
|
|
251
|
+
253 242 254
|
|
252
|
+
254 245 255
|
|
253
|
+
254 247 255
|
|
254
|
+
254 250 255
|
|
255
|
+
255 252 255
|
|
256
|
+
255 255 255
|