GithubHelp home page GithubHelp logo

gimp-dichromacy's Introduction

gimp-dichromacy

Multimodel color blindness simulation plugins for GIMP using Python-Fu.

Put multimodel_cvd_parallel.py or multimodel_cvd_single_thread.py in your /user home/.gimp-2.x/plug-ins directory. Only 8 bit per channel rgb images are supported. If GIMP ever supports 16 bit per channel, this plugin will likely crash due to low-level ops that assume the bpp to be fixed.

This gimp plugin simulates color blindness using the well-known Brettel et. al. model and a more recently developed physiological model by Gustavo M. Machado, Manuel M. Oliveira, and Leandro A. F. Fernandes (link).

Since math calculations are rather slow in Python, and pixel-level operations are required, a parallel version (using multiprocessor library) has been developed for use on multi-core systems. The single thread version is only recommended for single-core systems.

#####Quick usage tips For dichromacy simulation I would recommend using the Brettel model with the default simulated primaries transformation. You may also use the CRT primaries if you want results that were actually used in research with dichromatic test subjects but not in sRGB/aRGB-calibrated environments. To simulate protanomaly, the physiological model with simulated primaries seems to produce results that are closest to those obtained by using the Brettel model with proper calibration. For deuteranomaly simulation in sRGB-like color space, the original research primaries are probably the best (but they won't work in Adobe RGB). Tritanomaly simulation is not very accurate with either set, so, it's more of a matter of choice: the original research matrices produce more saturated results while the simulated primaries go all the way to virtual dichromacy (while the original matrices stop a little short).

#####More detailed description 5 different transformation types and anchor point value combinations are available for the Brettel model: simulated primaries (each coefficient is obtained by integrating a product of corresponding primary spectrum and cone responsivity function), measured CRT primaries and anchor points used by Vischeck and GIMP (using those should reproduce the GIMP display filters when the gamma correction but is fixed and be close to Vischeck although not quite the same since they use the gamma value of 2.0), von Kries transformation (details), CVRL-proposed LMS-XYZ transformation (details) and "spectrally sharpened" CIECAM02 transformation used for color adaptation models (details) which could be used to exaggerate reduced response range for protanopes and tritanopes for images that are known to contain a lot of out of gamut colors.

The default physiological model matrices are pre-calculated by the researchers, and the primaries they used were not provided in the paper. Judging by the appearance, they used the same calibration as Vischeck (CRT primaries). Naturally, the color space selection is meaningless for this set. Alternatively, matrices obtained by using gauss-shaped simulated primaries is also available for both color spaces (the resulting protanomaly simulation seems to be pretty good but deuteranomaly results seem shifted towards green and purple hues). Those primaries were generated to match the chromaticities and the white point provided in the sRGB and Adobe RGB color space specifications and the standard CIE color matching functions and their specs are available in gauss_primaries.py. The "alternative red" set was used both for this model and for the Brettel transformation (it seems to be closer to the real monitor spectra) but the results produced are virtually identical (as they should be since they have nearly identical chromaticities).

Both sRGB and Adobe RGB color spaces can be used from non-crt transformations (for both models). The CRT primaries, of course, represent their own color space (presumably close to sRGB), so, the color space selection option doesn't work for those. Further details are available in the code comments.

gimp-dichromacy's People

Contributors

tnphis avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.