Colour Deconvolution

Gabriel Landini
Execution Platform
Implementation Type
Programming Language
Supported image dimension
Interaction Level

This plugin is bundled with Fiji. For installation in ImageJ1, download from the link below and manually install the class file. 


The colour deconvolution plugin (java and class files) for ImageJ and Fiji implements stain separation using Ruifrok and Johnston's method described in [1]. The code is based on a NIH Image macro kindly provided by A.C. Ruifrok.
The plugin assumes images generated by colour subtraction (i.e. light-absorbing dyes such as those used in bright field histology or ink on printed paper). However, the dyes should not be neutral grey (most histological stains are not so).
If you intend to work with this plugin, it is important to read the original paper to understand how new vectors are determined and how the procedure works.
The plugin works correctly when the background is neutral (white to grey), so background subtraction with colour correction must be applied to the images before processing.
The plugin provides a number of "built in" stain vectors some of which were determined experimentally in our lab (marked in the source with GL), but you should determine your own vectors to achieve an accurate stain separation, depending on the stains and methods you use. See the note below.
The built-in vectors are :

  • Haematoxylin and Eosin (H&E) x2
  • Haematoxylin and DAB (H DAB)
  • Feulgen Light Green
  • Giemsa
  • Fast Red, Fast Blue and DAB
  • Methyl green and DAB
  • Haematoxylin, Eosin and DAB (H&E DAB)
  • Haematoxylin and AEC (H AEC)
  • Azan-Mallory
  • Masson Trichrome
  • Alcian blue & Haematoxylin
  • Haematoxylin and Periodic Acid - Schiff (PAS)
  • RGB subtractive
  • CMY subtractive
  • User values entered by hand
  • Values interactively determined from rectangular ROIs
has function
Entry Curator