@bagder

128-bit math is ... tricky. We implemented a 128-bit type for n-dimensional arrays to represent images in our #ImgLib2 library for image processing. So many gotchas in defining basic arithmetic operations; at some point in version history all our custom implementations were replaced by java's BigInteger's.
https://github.com/imglib/imglib2/blob/master/src/main/java/net/imglib2/type/numeric/integer/Unsigned128BitType.java

Our motivating use case? Integral images (summed-area table: https://en.wikipedia.org/wiki/Summed-area_table ). But now the 128-bit type has found other uses too.

imglib2/src/main/java/net/imglib2/type/numeric/integer/Unsigned128BitType.java at master · imglib/imglib2

A generic next-generation Java library for image processing - imglib/imglib2

GitHub

Why would one want to run machine learning inference from #java?

To do so on 3D, 4D, ND datasets, trivially accessible from image processing and visualization libraries such as #ImgLib2, the #BigDataViewer, #LabKit and more, all integral parts of #FijiSc.

* LabKit: https://imagej.net/plugins/labkit/

* BigDataViewer: https://imagej.net/plugins/bdv/

* ImgLib2: https://imagej.net/libs/imglib2/

* Fiji: https://fiji.sc

Labkit - Intuitive Pixel Classification in Fiji

The ImageJ wiki is a community-edited knowledge base on topics relating to ImageJ, a public domain program for processing and analyzing scientific images, and its ecosystem of derivatives and variants, including ImageJ2, Fiji, and others.

ImageJ Wiki

@christianp

Unrelated – yet reminds me of the time we implemented unsigned integer division for 128-bit numbers ... in the end we delegated it to java's BigInteger: https://github.com/imglib/imglib2/blob/master/src/main/java/net/imglib2/type/numeric/integer/Unsigned128BitType.java

#ImgLib2

imglib2/src/main/java/net/imglib2/type/numeric/integer/Unsigned128BitType.java at master · imglib/imglib2

A generic next-generation Java library for image processing - imglib/imglib2

GitHub

DeepImageJ 3.0 released—a user-friendly #FijiSc plugin that enables the use of a variety of pre-trained neural networks from the #BioimageModelZoo. Works with small and also very large images thanks to #ImgLib2.

https://deepimagej.github.io/

#DeepImageJ #PyTorch #TensorFlow #ImageJ #ImageProcessing

deepImageJ • Home

@remenca @spla Jo de fet faig servir molt java ... des de python ... implementat a la JVM! Una colla d'exemples per a processament d'imatge: https://syn.mrc-lmb.cam.ac.uk/acardona/fiji-tutorial/

El jython és un python 2.7, vell, vetust, però fa la feina.

Les llibreries són totes en java, com la #imglib2 que és reboníssima, i que, gràcies a tot de ponts (com el jpype), es pot fer servir des del python convencional. Vegeu imglyb https://github.com/imglib/imglyb i pyimagej https://pypi.org/project/pyimagej/

Fiji Programming Tutorial

Every time I need to run an image processing task, the open source software #FijiSc delivers.

The javadocs are up to date https://javadoc.scijava.org/ , the libraries just work – particularly #ImgLib2 https://imagej.net/libs/imglib2/

And the examples of my own tutorial https://syn.mrc-lmb.cam.ac.uk/acardona/fiji-tutorial/ written in python 2.7 for the #JVM (#jython), despite some being a decade old, they all just work. Grateful every day for the outstanding backwards compatibility plus the new plugins and libraries that continue to grow https://fiji.sc

Many thanks to the many, many developers and maintainers, particularly Curtis Rueden, who is presently cutting out a new release: 2.11.0 https://forum.image.sc/t/plugin-maintainers-can-you-test-fiji-2-11-0/78852/18

#ImageProcessing

SciJava Javadoc

@b0rk For fast integer modulo computation in #java programs. For example, in the #ImgLib2, a type-, dimension-, and storage-independent high-performance image processing library. Here, an example in a pixel type with 4 bits only:

// Same as (i * 4) % 64
final long shift = ( j << 2 ) & 63;

From the Unsigned4BitType class: https://github.com/imglib/imglib2/blob/master/src/main/java/net/imglib2/type/numeric/integer/Unsigned4BitType.java#L105

imglib2/Unsigned4BitType.java at master · imglib/imglib2

A generic next-generation Java library for image processing - imglib2/Unsigned4BitType.java at master · imglib/imglib2

GitHub
imglib2-tutorials/MandelbrotDemo.java at master · imglib/imglib2-tutorials

Examples/tutorials how to work with ImgLib. Contribute to imglib/imglib2-tutorials development by creating an account on GitHub.

GitHub
BigStitcher: reconstructing high-resolution image datasets of cleared and expanded samples - Nature Methods

BigStitcher enables fast and accurate alignment and reconstruction of terabyte-sized imaging datasets of cleared and expanded samples.

Nature
@markkitti @HHMI Great to hear about the support for developing #imglib2 from #HHMI and #CZI! Tobias Pietzsch has made outstanding contributions to #imglib2 and #FijiSc in general, and now this support means he will have the means to continue to do so. Excellent!