How to call DeconvolutionLab from a Javascript script or an ImageJ macro?
We provide below a JavaScript script that illustrates how to run DeconvolutionLab in headless mode. To use the script, download it to your computer and drag-and-drop it onto the ImageJ window.
Depending on the algorithm you want to use, you will need to set a certain number of parameters. We refer to the table below for the full list of parameters.
Example
The script can be downloaded here.// *************************************************************************** // DeconvolutionLab // // Example of a call from a Javascript macro // Regularized inverse filter with various epsilon // *************************************************************************** IJ.open("/Users/sage/Desktop/Test/input.tif"); IJ.open("/Users/sage/Desktop/Test/psf.tif"); var epsilon =-5; do { IJ.selectWindow("input.tif"); var chrono = System.currentTimeMillis(); IJ.run("DeconvolutionLab ", " namealgo='Inverse filtering' epsilon=10e" + epsilon + " namepsf='psf.tif' normalizepsf=true recenterpsf=true" + " usefftw=false logpriority=1 nameoutput='output'" ); while ((imp=WindowManager.getImage('output')) == null); imp.setTitle("output/" + epsilon); IJ.log( "Deconvolution Time: " + ((System.currentTimeMillis() - chrono)/1000) + " s." ) ; epsilon += 1; } while(epsilon < -1);
List of the parameters
Parameter | Type | Description | Default value | Range |
Common Parameters | ||||
usemacro | Boolean | useMacro | true | |
namealgo | String | Name of the algorithm | Should be provided | |
namepsf | String | Name of ImageJ window for the PSF | Should be provided | |
normalizepsf | Boolean | Normalize PSF | true | |
recenterpsf | Boolean | Flip PSF quadrants (activate if PSF is centered) | true | |
monitorperf | Boolean | Computation of the Signal-to-Error ratio | false | |
nameref | String | Ground-truth image | ||
folderperfmon | String | Folder for performance monitoring | ||
useseed | Boolean | useSeed | false | |
seed | Float | seed | 0 | |
background | Float | Background value | 0 | |
subtractbackground | Boolean | Subtract Background | false | |
estimatebackground | Boolean | estimateBackground | true | |
savevideo | Boolean | Save the video monitoring | false | |
foldervideo | String | Folder to save the video monitoring | ||
cropselection | Boolean | Test on a cropped selection | false | |
usewindowing | Boolean | Usage of the windowing | false | |
addborders | Boolean | Add borders for windowing | false | |
percentwindowing | Float | Percent of the windowing | 0 | |
percentborder | Float | Percent of the border window | 0 | |
windowingfunction | Integer | Windowing function | 0 | ZEROPADDING=0, HANN=1 |
processmultifile | Boolean | Process in batch mode | false | |
folderbatchinput | String | Folder for the batch input | ||
folderbatchoutput | String | Folder for the batch output | ||
usefftw | Boolean | Use FFTW | false | |
logprioritylevel | Integer | Level of log messages | 0 | MUTE, SILENT, NORMAL, VERBOSE |
nameoutput | String | Name of the output | ||
Convolution | ||||
addpoissonnoise | Boolean | Add Poisson noise | false | |
addgaussiannoise | Boolean | Add Gaussian noise | false | |
addbackground | Boolean | Add background noise | false | |
gamma | Float | Gain of the Poisson noise | 1 | 0 ... 65535 |
sigma | Float | Standard deviation of the Gaussian noise | 1 | 0 ... 10000 |
mu | Float | Value of the background | 0 | 0 ... 1e6 |
Inverse Filtering | ||||
epsilon | Float | Threshold | 1e-6 | 0 ... 1e6 |
Regularized Inverse Filtering | ||||
regparamest | Boolean | Automatic adjustment of the regularization parameter | true | |
lambda | Float | Regularization parameter | 1 | 0 ... 1e6 |
noiseparamest | Boolean | Automatic estimation of the noise parameters | true | |
gamma | Float | Gain of the Poisson noise | 1 | 1e-6 ... 1e6 |
sigma | Float | Standard deviation of the Gaussian noise | 1 | 0 ... 1e6 |
Landweber | ||||
initialest | String | Initial estimate | ||
useinputimg | Boolean | Use input image | true | |
k | Integer | Number of iterations (maximum) | 10 | 1 ... 1e6 |
tau | Float | Step size | 1 | 0 ... 1e6 |
autostepsize | Boolean | Automatic step size | true | |
onego | Boolean | Fixed number of iterations | false | |
posconstraint | Boolean | Positivity constraint | false | |
stopcrit | Integer | Early-stopping criterion | 0 | FIXEDNUMITER=0, RESIDUAL=1, UPDATE=2 |
sigma | Float | Standard deviation of noise | 1 | 0 ... 1e3 |
estimatesigma | Boolean | Estimated standard deviation of noise | false | |
tolerance | Float | Tolerance | 0 ... 1 | |
Thresholded Landweber | ||||
lambda | Float | Regularization parameter | 1 | 0f ... 1e6 |
wavfamily | Integer | Wavelet family | 0 | HAAR=0, DAUBECHIES2=1, DAUBECHIES4=2, DAUBECHIES6=3, FRACT_SPLINE=4 |
j | Integer | Number of decomposition levels | 3 | 1 ... 10 |
threshtype | Integer | Thresholding method | 0 | SOFT=0, HARD=1 |
randomshifts | Boolean | Usage of the random shifts method | true | |
stopcrit | Integer | Early-stopping criterion | 0 | FIXEDNUMITER=0, RESIDUAL=1, UPDATE=2 |
initialest | String | Initial estimate | ||
useinputimg | Boolean | Use input image | true | |
k | Integer | Number of iterations (maximum) | 10 | 1 ... 1e6 |
tau | Float | Step size | 1 | 0 ... 1e6 |
autostepsize | Boolean | Automatic step size | true | |
sigma | Float | Standard deviation of noise | 0 ... 1e3 | |
estimateSigma | Boolean | Estimated standard deviation of noise | false | |
tolerance | Float | Tolerance | 1e-3 | 0 ... 1 |
FISTA | ||||
lambda | Float | Regularization parameter | 1 | 0 ... 1e6 |
wavfamily | Integer | Wavelet family | 0 | HAAR=0, DAUBECHIES2=1, DAUBECHIES4=2, DAUBECHIES6=3, FRACT_SPLINE=4 |
J | Integer | Number of decomposition levels | 3 | 1 ... 10 |
threshtype | Integer | Thresholding method | 0 | SOFT=0, HARD=1 |
randomshifts | Boolean | Usage of the random shifts method | true | |
stopcrit | Integer | Early-stopping criterion | 0 | FIXEDNUMITER=0, RESIDUAL=1, UPDATE=2 |
initialest | String | Initial estimate | ||
useinputimg | Boolean | Use input image | true | |
k | Integer | Number of iterations (maximum) | 10 | 1 ... 1e6 |
tau | Float | Step size | 1 | 0 ... 1e6 |
autostepsize | Boolean | Automatic step size | true | |
sigma | Float | Standard deviation of noise | 1 | 0 ... 1e3 |
estimatesigma | Boolean | Estimated standard deviation of noise | false | |
tolerance | Float | Tolerance | 1e-3 | 0 ... 1 |
Tikhonov Miller | ||||
lambda | Float | Regularization parameter | 1 | 0 ...1e6 |
initialest | String | Initial estimate | ||
useinputimg | Boolean | Use input image | true | |
k | Integer | Number of iterations (maximum) | 10 | 1 ... 1e6 |
tau | Float | Step size | 1 | 0 ... 1e6 |
autostepsize | Boolean | Automatic step size | true | |
onego | Boolean | Fixed number of iterations | false | |
posconstraint | Boolean | Positivity constraint | true | |
stopcrit | Integer | Early-stopping criterion | 0 | FIXEDNUMITER=0, RESIDUAL=1, UPDATE=2 |
sigma | Float | Standard deviation of noise | 1 | 0 ... 1e3 |
estimatesigma | Boolean | Estimated standard deviation of noise | false | |
tolerance | Float | Tolerance | 1e-3 | 0 ... 1 |
Richardson Lucy | ||||
initialest | String | Initial estimate | ||
useinputimg | Boolean | Use input image | true | |
k | Integer | Number of iterations (maximum) | 10 | 1 ... 1e6 |
Richardson Lucy TV | ||||
lambda | Float | Regularization parameter | 1 | 0 ... 1e6 |
initialest | String | Initial estimate | ||
useinputimg | Boolean | Use input image | true | |
k | Integer | Number of iterations | 10 | 1 ... 1e6 |
posconstraint | Boolean | Positivity constraint | true |
© 2016 EPFL • webmaster.big@epfl.ch • 06.09.2016