Do you want to embed ImageJ in your node.js application? Well then, today is your lucky day!
npm install imagej
config = {}
config.imagej_dir = '/path/to/Fiji.app'
config.headless = true // Unless you want the GUI.
console.log('==> Starting ImageJ')
var imagej = require('imagej')(config)
imagej.on('ready', function(ij) {
ij.log().info('==> ImageJ is ready to go.')
dataset = ij.io().open('/path/to/myImage.tif')
filtered = ij.op().run('filter.gauss', dataset, [8, 10, 1])
ij.scifio().datasetIO().save(filtered, '/path/to/outputImage.png')
ij.context().dispose()
})
node examples/versions.js
node examples/gauss-filter.js
They assume you've set the IMAGEJ_DIR
environment variable
to an ImageJ2 installation.
The easiest way to get ImageJ2 is to install Fiji.
-
If the ImageJ startup hangs on macOS, you may have been bit by the dreaded AWT main thread issue. Try setting
config.headless = true
in theconfig
object you pass to the imagej initialization function.For further details, see this article as well as joeferner/node-java#21.
-
If
npm install
fails on macOS, you may have an issue with Python configuration. Thejava
module used byimagej
requires native compilation vianode-gyp
, which uses Python 2 (not 3!) internally. Try this:npm config set python /usr/bin/python export PATH=/usr/bin:$PATH
And then
npm install
again.