Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Bleach Correction


Kota Miura.
Bioimage Analysis & Research (BIAR).

Citing the Plugin


Released under the GNU General Public License v2.


ImageJ ver 1.34j or higher (ImageJ, upgrade page).


This plugin is included as a part of Fiji since 2012. Please find it under the menu tree [Image > Adjust >].

If you want to use it with ImageJ1, please download the jar file from here:

Place the jar file under plugin folder of ImageJ and restart ImageJ. You will find the plugin in the menu [Plugins -> emblTool -> Bleach Corrector].


This plugin contains three different methods for correcting the intensity decay due to photobleaching. They all work with either 2D or 3D time series. In case of 3D time series, image properties should be appropriately set. If you are not sure, check your image header by [Image -> Properties].

  • Simple Ratio Method:
  • Exponential Fitting Method:
    • This method is similar to the description in the manual of MBF-ImageJ. Additionally, this plugin also works with 3D time series.
    • MBF-ImageJ uses "Exponential" equation for fitting, whereas this plugin uses "Exponential with Offset"
    • The figure below is an example of fitting exponential decay equation to the intensity changes over time. Note that this is rather an ideal case example. If you see that the fit quality is not good enough, do not use this method. Beside the evaluation of the fitting quality by eyes, use R^2 (residual) as an indicator of the quality of fit.
    • image
  • Histogram Matching Method:
    • A brand-new method for bleach correction.
    • This algorithm first samples the histogram of initial frame, and for the successive frames, |histograms are matched to the first frame. This avoids the increase in noise in the latter part of the sequence which is a problem in the above two methods.
    • This method does much better restoration of bleaching sequence for segmentation but not appropriate for intensity quantification.
    • See the blog entry, for more details on this issue and some more notes.

Headless Usage

This script demonstrates the headless usage.

Q & A

One of our users is making timelapse experiments to track a GFP marker in cell cultures. GFP signal is very dim and background is quite strong (so SNR very poor). Over the time, background intensity decreases while specific signal keeps more or less the same so it becomes gradually more visible. He really expects the GFP to increase over the time, and he would like to quantify this increase in GFP signal over time. To compensate background bleaching he is using your bleach_corrector plugin in FIJI. He obtains the best visualization of what he expects with the Histogram Matching Method. The thing is that, as you mention in your blog's entry (, ), with this method you cannot quantify intensities.


Can you recommend us an alternative method to be able to quantify changes in the GFP signal over time?

Other thing is at this moment it is difficult to know is wherther everything is bleached (so GFP signal kept constant reflects an increase) or wherther bleaching affects only the medium (so GFP is really constant and is not increasing, which is not what he expects...). We will make test to address this issue...

Xavier Sanjuan (ALMU, Parc de Recerca Biomèdica de Barcelona),
.on behalf of Diego Barcena (Mark Isalan group, CRG, Barcelona)

The reason that the histogram matching method cannot be used for the some type of samples, to explain in your case, is because the histogram matching algorithm assumes that the histogram shape is always constant over time. This also means that the average intensity is constant over time. However, in your case, you already know that the signal should increase assuming that the background intensity is constant. This means that you expect that histogram shape does change over time, contradicting with the assumption that the histogram matching algorithm is based on.

One way that I can suggest to do the correction is as follows:

  • Estimate the baseline intensity level.
    • select a region (ROI) in the background, and do [Image > Stack > Plot z-axis profile...]. This will create a plot, expected to be decaying. Click "List" button which will then create a table with frame number and average intensity. Select All and Copy them all.
    • Do [Analyze > Tools > Curve Fitting]. Curve fitting interface appears, so paste the copied value in the field (you probably need to delete the default values). Then fit the values using "Exponential with offset"
    • You will then see a plot, fitted by a curve. the value "C" will be the estimate of baseline. Keep the value.
  • Go back to your image stack, select a background region (ROI) again. This will be a region where the decay is measured.
  • DO [Bleach correction], and select "Simple ratio"
    • you will be asked for a background value. In put the value you got in 1.3. Click OK
    • you will see the stack corrected by simple ratio method.