imagej-ops

ImageJ Ops: "Write once, run anywhere" image processing

  • Owner: imagej/imagej-ops
  • Platform:
  • License:: BSD 2-Clause "Simplified" License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart


Join the chat at https://gitter.im/imagej/imagej-ops

ImageJ Ops

ImageJ Ops is an extensible Java framework for algorithms, particularly image
processing algorithms. Ops seeks to be a unifying library for scientific image
processing. See the
Motivation page for
details.

Getting started

Each op has a list of typed input and output parameters on which it operates.
You can think of an op as a (potentially multi-variable) function:

sum = math.add(a, b)
(phase, amplitude) = fft(image)

In many cases you can also pass a pre-allocated output which will be populated:

math.add(sum, a, b)

Some ops take other ops as inputs, which allows for things like "execute this
op on every pixel of that image":

add_op = op("math.add", 5)
output_image = map(input_image, add_op)

For more details, see the "Introduction to ImageJ Ops" tutorial notebook:

https://imagej.github.io/tutorials

Working example

Try this Jython script in ImageJ's
Script Editor!

# @ImageJ ij

# create a new blank image
from jarray import array
dims = array([150, 100], 'l')
blank = ij.op().create().img(dims)

# fill in the image with a sinusoid using a formula
formula = "10 * (Math.cos(0.3*p[0]) + Math.sin(0.3*p[1]))"
sinusoid = ij.op().image().equation(blank, formula)

# add a constant value to an image
ij.op().math().add(sinusoid, 13.0)

# generate a gradient image using a formula
gradient = ij.op().image().equation(ij.op().create().img(dims), "p[0]+p[1]")

# add the two images
composite = ij.op().create().img(dims)
ij.op().math().add(composite, sinusoid, gradient)

# display the images
ij.ui().show("sinusoid", sinusoid)
ij.ui().show("gradient", gradient)
ij.ui().show("composite", composite)

The output:

sinusoid gradient composite

How to contribute

We welcome pull requests!

Main metrics

Overview
Name With Ownerimagej/imagej-ops
Primary LanguageJava
Program languageGroovy (Language Count: 2)
Platform
License:BSD 2-Clause "Simplified" License
所有者活动
Created At2014-03-07 09:19:29
Pushed At2024-08-29 15:52:00
Last Commit At2024-08-29 10:51:59
Release Count73
Last Release Nameimagej-ops-2.2.0 (Posted on )
First Release Nameij-ops-0.1.0 (Posted on 2014-04-04 18:40:05)
用户参与
Stargazers Count89
Watchers Count36
Fork Count42
Commits Count3.7k
Has Issues Enabled
Issues Count283
Issue Open Count160
Pull Requests Count279
Pull Requests Open Count15
Pull Requests Close Count79
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private