User Tools

Site Tools


Bleach Corrector


Kota Miura
Bioimage Analysis & Research (BIAR)

Video: Christophe Leterrier(@chrislet) See here for the twitter presenting this video

Citing the Plugin


  • 10-09-15 First Version
  • 12-04-16 Compiled with JRE 1.6.0_20

recent changes


Released under the GNU General Public License v2.


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


This plugin will be a part of Fiji, so you could find it under menu tree [Image > Adjust >] in near future (as of Apr. 18, 2012).

If you want to use it in ImageJ, download CorrectBleach_.jar (right click or ctrl-click to save) and place the jar file under plugin folder of ImageJ and restart ImageJ. You will find the plugin at [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:
    • Plugin version of Jens Rietdorf's macro, extended further with capability for correcting 3D time series. This method is similar to the double normalization method in Phair et al. (2004), except that we do not normalize the curve.
    • Phair, R. D., Gorski, S. A. and Misteli, T. (2004). Measurement of dynamic protein binding to chromatin in vivo, using photobleaching microscopy. Methods Enzymol 375, 393-414.
    • You need to estimate the base line intensity before using this method. Measure the mean intensity of the region outside the target signal and use that value.
  • Exponential Fitting Method:
    • Similar to the description in the manual of MBF-ImageJ. Additionally, this plugin also works with 3D time series.
    • MBF-ImageJ suggests to use “Exponential” equation for fitting, whereas this plugin uses “Exponential with Offset”
    • Figure below is an example of fitting exponential decay equation to the intensity changes over time. 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. Fitting Exponential Curve
  • Exponential Fitting Method (base subtraction):
    • similar to above, but does two rounds of curve fitting.
    • 1st round: estimate the baseline intensity and subtract the base line value
    • 2nd round: do the curve fitting again and correct each frame accordingly.
  • 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.

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 histogram matching cannot be used for the measurement, to explain in your case, is because the algorithm assumes that the histogram shape is always constant (which also means that the average intensity is constant over time).

On the other hand, you know that the signal should increase if its background is constant, which means that you must assume that histogram shape does change over time, contradicting with the assumption that histogram matching is based on.

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

  1. Estimate the baseline intensity level.
    1. 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.
    2. 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”
    3. You will then see a plot, fitted by a curve. the value “C” will be the estimate of baseline. Keep the value.
  2. Go back to your image stack, select a background region (ROI) again. This will be a region where the decay is measured.
  3. DO [Bleach correction], and select “Simple ratio”
    1. you will be asked for a background value. In put the value you got in 1.3. Click OK
    2. you will see the stack corrected by simple ratio method.
downloads/bleach_corrector.txt · Last modified: 2021/10/08 08:10 by kota

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki