CINXE.COM
SciJava
<!DOCTYPE html> <html> <head> <title>SciJava</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=3" /> <meta content="ImageJ Wiki" property="og:site_name"> <meta content="SciJava" property="og:title"> <meta content="article" property="og:type"> <meta content="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." property="og:description"> <meta content="https://imagej.github.io/libs/scijava" property="og:url"> <meta content="https://imagej.github.io/media/icons/imagej2.png" property="og:image"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="manifest" href="/site.webmanifest"> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="theme-color" content="#ffffff"> <link rel="stylesheet" href="/assets/css/lightbox.min.css" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.css@7/themes/algolia-min.css"/> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/dygraphs@2.1.0/dist/dygraph.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/dygraphs@2.1.0/dist/dygraph.min.css" /> <link rel="stylesheet" href="/assets/css/main.css" /> <link rel="stylesheet" href="/assets/css/layout.css"/> <link rel="stylesheet" href="/assets/css/includes.css" /> <link rel="stylesheet" href="/assets/css/timeline.css"/> <link rel="stylesheet" href="/assets/css/dock.css"/> <noscript><link rel="stylesheet" href="/assets/css/noscript.css" /></noscript> <link rel="stylesheet" href="/assets/css/page.css" /> </head> <body class="is-preload"> <!-- Top bar --> <section id="top-bar"> <a href="/"><img id="site-logo" src="/media/icons/imagej2.png"></a> <div id="search-panel"> <div id="search-box"></div> </div> </section> <!-- Page-info --> <div class="page-info"> <a href="https://github.com/imagej/imagej.github.io/commits/main/_pages/libs/scijava.md">Page history</a> <a href="https://github.com/imagej/imagej.github.io/edit/main/_pages/libs/scijava.md">Edit this page</a> <a href="/editing">How do I edit this website?</a></div> <section id="left-column" class="sidebar dock"> <!-- Menu --> <div class="menu dockable"> <div class="drag-handle"></div><h3>ImageJ Docs</h3> <ul> <li><a href="/downloads">Download</a></li> <li><details><summary>Learn</summary><ul> <li><details><summary><a href="/learn">ImageJ Basics</a></summary><ul> <li><a href="/tutorials">Tutorials</a></li> <li><a href="/learn/user-guides">User Guides</a></li> <li><a href="/learn/keyboard-shortcuts">Keyboard Shortcuts</a></li> <li><a href="/learn/tips-and-tricks">Tips and Tricks</a></li> <li><a href="/learn/troubleshooting">Troubleshooting</a></li> <li><a href="/learn/faq">Frequently Asked Questions</a></li> <li><details><summary><a href="/platforms">Supported Platforms</a></summary><ul> <li><a href="/platforms/windows">Windows</a></li> <li><a href="/platforms/macos">MacOS</a></li> <li><a href="/platforms/linux">Linux</a></li> <li><a href="/platforms/pi">Raspberry Pi</a></li> <li><a href="/platforms/android">Android</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/Supported Platforms --> <li><details><summary><a href="/formats">File Formats</a></summary><ul> <li><a href="/formats/bio-formats">Bio-Formats</a></li> <li><a href="/formats/video">Video formats</a></li> <li><a href="/formats/quicktime">QuickTime</a></li> <li><a href="/formats/tiff">TIFF</a></li> <li><a href="/formats/pdf">PDF</a></li> <li><a href="/formats/dicom">DICOM</a></li> <li><a href="/formats/lsm">Zeiss LSM</a></li> <li><a href="/formats/olympus">Olympus VSI</a></li> <li><a href="/formats/lurawave">Opera Flex</a></li> <li><a href="/formats/fib-sem">FIB-SEM</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/File Formats --> </ul></details></li> <!-- Learn/ImageJ --> <li><details><summary><a href="/imaging">Scientific Imaging</a></summary><ul> <li><a href="/imaging/principles">Principles of Scientific Imaging</a></li> <li><a href="/imaging/annotating-images">Annotating Images</a></li> <li><a href="/imaging/colocalization-analysis">Colocalization</a></li> <li><a href="/imaging/color-image-processing">Color Image Processing</a></li> <li><a href="/imaging/deconvolution">Deconvolution</a></li> <li><a href="/imaging/image-intensity-processing">Image Intensity Processing</a></li> <li><a href="/imaging/particle-analysis">Particle Analysis</a></li> <li><a href="/imaging/registration">Registration</a></li> <li><a href="/imaging/segmentation">Segmentation</a></li> <li><a href="/imaging/stack-slice-manipulations">Stack-slice Manipulations</a></li> <li><a href="/imaging/t-functions">T-functions</a></li> <li><a href="/imaging/tracking">Tracking</a></li> <li><a href="/imaging/visualization">Visualization</a></li> <li><a href="/imaging/z-functions">Z-functions</a></li> </ul></details></li> <!-- Learn/Scientific Imaging --> </ul></details></li> <!-- Learn --> <li><details><summary><a href="/plugins">Extend</a></summary><ul> <li><a href="/list-of-extensions">List of Extensions</a></li> <li><details><summary><a href="/update-sites">Update Sites</a></summary><ul> <li><a href="/list-of-update-sites">List of Update Sites</a></li> <li><a href="/update-sites/following">Following an Update Site</a></li> <li><a href="/update-sites/setup">Creating an Update Site</a></li> <li><a href="/update-sites/tos">Terms of Service</a></li> <li><a href="/update-sites/automatic-uploads">Automatic Upload</a></li> <li><a href="/update-sites/core-uploads">Uploading to Core Sites</a></li> <li><a href="/update-sites/faq">Update Sites FAQ</a></li> <li><a href="/update-sites/stats">Statistics</a></li> </ul></details></li> <!-- Extend/Update Sites --> <li><details><summary><a href="/scripting">Scripting</a></summary><ul> <li><a href="/scripting/basics">Scripting Basics</a></li> <li><a href="/scripting/script-editor">Script Editor</a></li> <li><a href="/scripting/parameters">Parameters</a></li> <li><a href="/scripting/user-input">User Input</a></li> <li><a href="/scripting/auto-imports">Auto Import</a></li> <li><a href="/scripting/templates">Templates</a></li> <li><a href="/scripting/batch">Batch Processing</a></li> <li><a href="/scripting/headless">Running Headlessly</a></li> <li><a href="/scripting/comparisons">Scripting Comparisons</a></li> <li><a href="/scripting/toolbox">Toolbox</a></li> <li><details><summary>Languages</summary><ul> <li><a href="/scripting/beanshell">BeanShell Scripting</a></li> <li><a href="/scripting/groovy">Groovy Scripting</a></li> <li><a href="/scripting/macro">ImageJ Macro</a></li> <li><a href="/scripting/javascript">JavaScript</a></li> <li><a href="/scripting/clojure">Lisp (Clojure)</a></li> <li><a href="/scripting/matlab">MATLAB</a></li> <li><a href="/scripting/jython">Python (Jython)</a></li> <li><a href="/scripting/python">Python (native)</a></li> <li><a href="/scripting/renjin">R (Renjin)</a></li> <li><a href="/scripting/jruby">Ruby (JRuby)</a></li> <li><a href="/scripting/scala">Scala Scripting</a></li> </ul></details></li> <!-- Extend/Scripting/Languages --> </ul></details></li> <!-- Extend/Scripting --> <li><details><summary><a href="/develop">Development</a></summary><ul> <li><a href="/develop/philosophy">Philosophy</a></li> <li><a href="/develop/architecture">Architecture</a></li> <li><a href="/develop/source">Source code</a></li> <li><a href="/develop/project-management">Project management</a></li> <li><a href="/develop/coding-style">Coding style</a></li> <li><a href="/develop/javadoc">Using Javadoc</a></li> <li><a href="/develop/debugging">Debugging</a></li> <li><a href="/develop/wish-list">Wish list</a></li> <li><details><summary>Tools</summary><ul> <li><a href="/develop/github">GitHub</a></li> <li><a href="/develop/maven">Maven</a></li> <li><a href="/develop/ci">CI/CD</a></li> <li><a href="/develop/dotfiles">Dotfiles</a></li> <li><details><summary><a href="/develop/ides">IDEs</a></summary><ul> <li><a href="/develop/eclipse">Eclipse</a></li> <li><a href="/develop/netbeans">NetBeans</a></li> <li><a href="/develop/intellij">IntelliJ IDEA</a></li> <li><a href="/develop/command-line">Command Line</a></li> </ul></details></li> </ul></details></li> <!-- Extend/Development/Tools --> <li><details><summary>Guides</summary><ul> <li><a href="/develop/plugins">Writing plugins</a></li> <li><a href="/develop/improving-the-code">Contributing to a plugin</a></li> <li><a href="/develop/releasing">Development lifecycle</a></li> <li><a href="/develop/building-a-pom">Building a POM</a></li> <li><a href="/develop/debugging-exercises">Hands-on debugging</a></li> <li><a href="/develop/writing-ops">Adding new ops</a></li> <li><a href="/develop/formats">Adding new formats</a></li> <li><a href="/develop/native-libraries">Using native libraries</a></li> <li><a href="/develop/tips">Tips for developers</a></li> <li><a href="/develop/cpp-tips">Tips for C++ developers</a></li> <li><a href="/develop/ij1-plugins">ImageJ 1.x plugins</a></li> <li><a href="/develop/versioning">Versioning</a></li> <li><a href="/develop/logging">Logging</a></li> <li><a href="/develop/uber-jars">Uber-JARs</a></li> </ul></details></li> <!-- Extend/Development/Guides --> <li><details><summary><a href="/develop/git">Git</a></summary><ul> <li><a href="/develop/git/eclipse">Git in Eclipse (EGit)</a></li> <li><a href="/develop/git/mini-howto">Git mini howto</a></li> <li><a href="/develop/git/workshop">Git workshop</a></li> <li><a href="/develop/git/conflicts">Git conflicts</a></li> <li><a href="/develop/git/topic-branches">Git topic branches</a></li> <li><a href="/develop/git/notes">Git notes</a></li> <li><a href="/develop/git/reflogs">Git reflogs</a></li> <li><a href="/develop/git/submodules">Git submodules</a></li> <li><a href="/develop/git/pinpoint-regressions">How to pinpoint regressions</a></li> <li><a href="/develop/git/publish-a-repository">How to publish a git repository</a></li> <li><a href="/develop/git/extract-a-subproject">How to extract a subproject</a></li> </ul></details></li> <!-- Extend/Development/Git --> </ul></details></li> <!-- Extend/Development --> </ul></details></li> <!-- Extend --> <li><details><summary><a href="/contribute">Contribute</a></summary><ul> <li><a href="/contribute/citing">Citing</a></li> <li><a href="/people">Contributors</a></li> <li><a href="/orgs">Organizations</a></li> <li><a href="/contribute/governance">Governance</a></li> <li><a href="/contribute/funding">Funding</a></li> <li><a href="/contribute/fiji">Contributing to Fiji</a></li> <li><details><summary><a href="/licensing">Licensing</a></summary><ul> <li><details><summary><a href="/licensing/open-source">Open Source</a></summary><ul> <li><a href="/licensing/apache">Apache</a></li> <li><a href="/licensing/bsd">BSD</a></li> <li><a href="/licensing/epl">EPL</a></li> <li><a href="/licensing/gpl">GPL</a></li> <li><a href="/licensing/lgpl">LGPL</a></li> <li><a href="/licensing/mit">MIT</a></li> <li><a href="/licensing/public-domain">Public domain</a></li> <li><a href="/licensing/big">BIG</a></li> </ul></details></li> <!-- Contribute/Licensing/Open Source --> <li><a href="/licensing/closed-source">Proprietary</a></li> </ul></details></li> <!-- Contribute/Licensing --> <li><details><summary><a href="/editing">Editing the Wiki</a></summary><ul> <li><a href="/editing/advanced">Advanced Editing</a></li> <li><a href="/editing/buttons">Buttons</a></li> <li><a href="/editing/citations">Citations</a></li> <li><a href="/editing/code">Source Code</a></li> <li><a href="/editing/debugging">Debugging</a></li> <li><a href="/editing/headers">Headers</a></li> <li><a href="/editing/icons">Icons</a></li> <li><a href="/editing/images">Images</a></li> <li><a href="/editing/keys">Keyboard Shortcuts</a></li> <li><a href="/editing/linking">Linking</a></li> <li><a href="/editing/math">Math Expressions</a></li> <li><a href="/editing/menu-paths">Menu Paths</a></li> <li><a href="/editing/navigation">Navigation</a></li> <li><a href="/editing/notices">Notices</a></li> <li><a href="/editing/people">People</a></li> <li><a href="/editing/pitfalls">Pitfalls</a></li> <li><a href="/editing/quizzes">Quizzes</a></li> <li><a href="/editing/statbox">Statbox</a></li> <li><a href="/editing/symbols">Symbols</a></li> <li><a href="/editing/tables">Tables</a></li> <li><a href="/editing/timelines">Timelines</a></li> <li><a href="/editing/tooltips">Tooltips</a></li> <li><a href="/editing/videos">Videos</a></li> <li><a href="/editing/whitespace">Whitespace</a></li> </ul></details></li> <!-- Contribute/Editing the Wiki --> </ul></details></li> <!-- Contribute --> <li><details><summary><a href="/discuss">Discuss</a></summary><ul> <li><a href="/discuss/bugs">Reporting Issues</a></li> <li><a href="/discuss/mailing-lists">Mailing Lists</a></li> <li><a href="/discuss/chat">Chat</a></li> </ul></details></li> <!-- Discuss --> <li><details open><summary>Explore</summary><ul> <li><a href="/news">News</a></li> <li><details><summary><a href="/events">Events</a></summary><ul> <li><a href="/events/presentations">Presentations</a></li> <li><a href="/events/conferences">Conferences</a></li> <li><a href="/events/hackathons">Hackathons</a></li> <li><a href="/events">More...</a></li> </ul></details></li> <!-- Discuss/Events --> <li><details open><summary><a href="/libs">Libraries</a></summary><ul> <li><a href="/libs/imagej-ops">ImageJ Ops</a></li> <li><a href="/libs/imagej-common">ImageJ Common</a></li> <li><a href="/libs/imagej-legacy">ImageJ Legacy</a></li> <li><a class="current-page">SciJava</a></li> <li><a href="/libs/scifio">SCIFIO</a></li> <li><details><summary><a href="/libs/imglib2">ImgLib2</a></summary><ul> <li><a href="/libs/imglib2/getting-started">Getting Started</a></li> <li><a href="/libs/imglib2/accessors">Accessors</a></li> <li><a href="/libs/imglib2/accessibles">Accessibles</a></li> <li><a href="/libs/imglib2/examples">Examples</a></li> <li><a href="/libs/imglib2/workshop-introductory">Introductory Workshop</a></li> <li><a href="/libs/imglib2/workshop-advanced">Advanced Workshop</a></li> <li><a href="/libs/imglib2/matlab">ImgLib2 images in MATLAB</a></li> <li><a href="/libs/imglib2/benchmarks">Benchmarks</a></li> <li><a href="/libs/imglib2/faq">FAQ</a></li> <li><a href="/libs/imglib2/developing">Developing ImgLib2</a></li> <li><a href="/libs/imglib2/discussion">ImgLib2 Discussion</a></li> </ul></details></li> <!-- Explore/Libraries/ImgLib2 --> <li><a href="/libs">More...</a></li> </ul></details></li> <!-- Explore/Libraries --> <li><details><summary><a href="/software">Software</a></summary><ul> <li><a href="/software/nih-image">NIH Image</a></li> <li><a href="/software/imagej">ImageJ</a></li> <li><a href="/software/imagej2">ImageJ2</a></li> <li><a href="/software/fiji">Fiji</a></li> <li><a href="/software">More...</a></li> </ul></details></li> <!-- Explore/Software --> </ul></details></li> <!-- Explore --> </ul> </div> </section> <section id="right-column" class="sidebar dock"> <!-- Vital stats --> <script src="/assets/js/maven.js"></script> <script> function refreshComponent() { var statboxName = document.getElementById('statbox-name'); if (statboxName) statboxName.innerHTML = 'Reloading...'; fillStatsFromArtifact('org.scijava:scijava-common', ''); } refreshComponent(); </script><div id="statbox" class="dockable" style="position: relative;"> <h3>Vital statistics</h3> <div class="drag-handle"></div> <button class="btn-refresh" onclick="refreshComponent()"><i class="fa fa-sync" style="pointer-events: none;"></i></button> <table><tr><td id="statbox-header" colspan=2><p id="statbox-image"><img src="/media/icons/scijava.svg"></p> <p id="statbox-name">Loading...</p></td></tr><tr><th>Source</th> <td id="component-source">none</td></tr><tr><th>License</th> <td id="component-license"></td></tr><tr><th>Release</th> <td id="component-release"></td></tr><tr><th>Date</th> <td id="component-date"></td></tr><tr><th>Development status</th> <td id="component-dev-status"></td></tr><tr><th>Support status</th> <td id="component-support-status"></td></tr><tr><th>Discussion</th> <td id="component-forum-tag" class="manual"><a rel="nofollow" href="https://forum.image.sc/tag/scijava"><img alt="Image.sc forum" src="https://img.shields.io/badge/dynamic/json.svg?label=&url=https%3A%2F%2Fforum.image.sc%2Ftags%2Fscijava.json&query=%24.topic_list.tags.0.topic_count&colorB=brightgreen&suffix=%20topics&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABPklEQVR42m3SyyqFURTA8Y2BER0TDyExZ+aSPIKUlPIITFzKeQWXwhBlQrmFgUzMMFLKZeguBu5y+//17dP3nc5vuPdee6299gohUYYaDGOyyACq4JmQVoFujOMR77hNfOAGM+hBOQqB9TjHD36xhAa04RCuuXeKOvwHVWIKL9jCK2bRiV284QgL8MwEjAneeo9VNOEaBhzALGtoRy02cIcWhE34jj5YxgW+E5Z4iTPkMYpPLCNY3hdOYEfNbKYdmNngZ1jyEzw7h7AIb3fRTQ95OAZ6yQpGYHMMtOTgouktYwxuXsHgWLLl+4x++Kx1FJrjLTagA77bTPvYgw1rRqY56e+w7GNYsqX6JfPwi7aR+Y5SA+BXtKIRfkfJAYgj14tpOF6+I46c4/cAM3UhM3JxyKsxiOIhH0IO6SH/A1Kb1WBeUjbkAAAAAElFTkSuQmCC"></a></td></tr><tr><td id="component-team" colspan=2> <details> <summary style="text-align: center"><span class="tooltip">Team<span class="tooltiptext" style="top: 80%; left: -75px; width: 180px">The group of people who take responsibility for the project.</span></span></summary> <table><tr><th><span class="tooltip">Founders<span class="tooltiptext" style="top: 80%; left: -10px; width: 180px">People who created the project. Does not imply any current participation or responsibility.</span></span></th><td id="component-team-founders"></td> </tr><tr><th><span class="tooltip">Leads<span class="tooltiptext" style="top: 80%; left: -10px; width: 180px">People responsible for making decisions about the project: timing of releases, inclusion of features, etc.</span></span></th><td id="component-team-leads"></td> </tr><tr><th><span class="tooltip">Developers<span class="tooltiptext" style="top: 80%; left: -10px; width: 180px">People responsible for adding new features or enhancements.</span></span></th><td id="component-team-developers"></td> </tr><tr><th><span class="tooltip">Debuggers<span class="tooltiptext" style="top: 80%; left: -10px; width: 180px">People responsible for fixing bugs.</span></span></th><td id="component-team-debuggers"></td> </tr><tr><th><span class="tooltip">Reviewers<span class="tooltiptext" style="top: 80%; left: -10px; width: 180px">People responsible for reviewing patch submissions.</span></span></th><td id="component-team-reviewers"></td> </tr><tr><th><span class="tooltip">Support<span class="tooltiptext" style="top: 80%; left: -10px; width: 180px">People responsible for responding to community questions and issue reports.</span></span></th><td id="component-team-support"></td> </tr><tr><th><span class="tooltip">Maintainers<span class="tooltiptext" style="top: 80%; left: -10px; width: 180px">People responsible for maintaining the project: e.g., merging patch submissions and cutting releases.</span></span></th><td id="component-team-maintainers"></td> </tr><tr><th><span class="tooltip">Contributors<span class="tooltiptext" style="top: 80%; left: -10px; width: 180px">People who contributed code to the project. Does not imply any current participation or responsibility.</span></span></th><td id="component-team-contributors"></td> </tr></table> </details> </td></tr></table> </div> <!-- Table of contents --> <div id="toc" class="toc menu dockable"> <div class="drag-handle"></div> <h3>Page contents</h3> <ul data-toc="#content" data-toc-headings="h1,h2,h3,h4,h5,h6"></ul> </div> </section> <!-- Page title --> <div class="container"> <header class="major special"> <a class="project-icon shadowed-box"><span class="tooltip"><img src="/media/icons/scijava.svg"><span class="tooltiptext" style="top: 80%; left: 25%; width: 20em">This page describes the core SciJava software libraries.</span></span></a> <h1>SciJava</h1> <span class="project-counterweight"> </span> </header> </div> <!-- Nav bar --> <!-- Main content --> <section id="page" class="main style1"> <div class="container"> <div class="box alt"></div> <div id="content" class="page-content"> <p>SciJava is a collaboration of projects providing software for scientific computing—an effort to cooperate and reuse code when feasible.</p> <p>It is also a collection of foundational software libraries, upon which <a href="/software/imagej2">ImageJ2</a> and <a href="/software/fiji">Fiji</a> are built.</p> <h1 id="the-scijava-component-collection">The SciJava component collection</h1> <p>The following component layers are part of the <strong><a href="/develop/architecture">SciJava component collection</a></strong>:</p> <ul> <li><strong>SciJava</strong> - foundational layer unspecific to image processing, including the <a href="#scijava-common">SciJava Common</a> shared library with powerful plugin framework and application container, and plugins built on it.</li> <li><a href="/libs/imglib2">ImgLib2</a> - core libraries for N-dimensional image processing.</li> <li><a href="/libs/scifio">SCIFIO</a> - core libraries for N-dimensional image I/O.</li> <li><a href="/software/imagej2">ImageJ2</a> - core libraries and application for N-dimensional image processing.</li> <li><a href="/software/fiji">Fiji</a> - “batteries-included” distribution of ImageJ and ImageJ2, bundling a lot of plugins which facilitate scientific image analysis.</li> <li><a href="/plugins/bdv">BigDataViewer</a> - re-slicing browser and Fiji plugin for terabyte-sized multi-view image sequences</li> <li><a href="/plugins/trakem2">TrakEM2</a> - Fiji plugin suite for morphological data mining, three-dimensional modeling and image stitching, registration, editing and annotation.</li> <li><a href="/formats/bio-formats">Bio-Formats</a> - libraries and ImageJ plugins for life sciences image format I/O.</li> </ul> <p>All components in this collection are managed by SciJava’s <a href="/develop/architecture#bill-of-materials">Bill of Materials</a> to make it easier for downstream components to use them without version conflicts.</p> <h1 id="the-scijava-pledge">The SciJava pledge</h1> <p>The following projects are part of the <strong>SciJava pledge</strong> to work together, reuse code and synergize wherever possible:</p> <table> <tbody> <tr> <td style="text-align: center; vertical-align: middle"> <p><a href="/software/imagej2"><img alt="ImageJ2" src="/media/icons/imagej2.png" width="48px"/></a></p> </td> <td style="text-align: center; vertical-align: middle"> <p><a href="/software/cellprofiler"><img src="/media/logos/cellprofiler.png" height="64px"></a></p> </td> <td style="text-align: center; vertical-align: middle"> <p><a href="/software/knime"><img src="/media/logos/knime.svg" height="54px"></a></p> </td> <td></td> <td style="text-align: center; vertical-align: middle"> <p><a href="/software/omero"><img src="/media/logos/omero.png" height="32px"></a></p> </td> <td style="text-align: center; vertical-align: middle"> <p><a href="https://github.com/scenerygraphics/scenery"><img src="/media/logos/scenery.png" height="72px"></a></p> </td> <td></td> </tr> <tr> <td> <p><a href="/software/fiji"><img alt="Fiji" src="/media/icons/fiji.png" width="48px"/></a></p> </td> <td style="text-align: center; vertical-align: middle"> <p><a href="/software/icy"><img src="/media/logos/icy.png" height="48px"></a></p> </td> <td style="text-align: center; vertical-align: middle"> <p><a href="/software/micro-manager"><img alt="Micro-Manager" src="/media/icons/micro-manager.jpg" width="48px"/></a></p> </td> <td style="text-align: center; vertical-align: middle"> <p><a href="/software/virtual-cell"><img alt="VCell" src="/media/icons/vcell.png" width="48px"/></a></p> </td> <td style="text-align: center; vertical-align: middle"> <p><a href="/formats/bio-formats"><img src="/media/logos/bio-formats.png" height="28px"></a></p> </td> <td style="text-align: center; vertical-align: middle"> <p><a href="/software/alida"><img alt="Alida" src="/media/icons/alida.jpg" width="48px"/></a></p> </td> <td style="text-align: center; vertical-align: middle"> <p><a href="/plugins/mitobo"><img alt="MiToBo" src="/media/icons/mitobo.png" width="48px"/></a></p> </td> </tr> </tbody> </table> <p>See the <a href="/develop/architecture">Architecture</a> and <a href="/contribute/governance">Governance</a> pages, as well as the <a href="https://scijava.org/">SciJava website</a>, for further details.</p> <h1 id="scijava-common">SciJava Common</h1> <p>SciJava Common is a common library for <a href="/libs/scijava">SciJava</a> software. It provides a plugin framework, with an extensible mechanism for service discovery, backed by its own annotation processor, so that plugins can be loaded dynamically. It is used by both <a href="/software/imagej2">ImageJ2</a> and <a href="/libs/scifio">SCIFIO</a>.</p> <h2 id="plugin-framework">Plugin framework</h2> <p>First and foremost, SciJava Common is a plugin framework—a base for developing highly modular and extensible Java applications.</p> <h3 id="plugin-discovery">Plugin discovery</h3> <p>All plugins available on Java’s classpath are automatically discovered and made available. This is accomplished by scanning classpath resources for the file path <code class="language-plaintext highlighter-rouge">META-INF/json/org.scijava.plugin.Plugin</code>. Such files are generated at compile time by a Java annotation processor that writes them in response to <code class="language-plaintext highlighter-rouge">@Plugin</code> annotations on Java classes, an idea inspired by the <a href="https://github.com/jglick/sezpoz/">SezPoz</a> project.</p> <h2 id="application-container">Application container</h2> <p>All program state, such as available plugins, is accessible from a root object known as the <em>application context</em>.</p> <h3 id="services">Services</h3> <div class="notice" style="font-size: 2; background: #e6e6e6; border-left: 10px solid goldenrod"><div class="notice-icon"><img src="/media/icons/imagej.png" /></div><div class="notice-content"> <p>Whereas <a href="/software/imagej">ImageJ</a> is a <a href="https://en.wikipedia.org/wiki/Singleton_pattern">singleton</a>, with static methods to access much of its functionality, <a href="/software/imagej2">ImageJ2</a> encapsulates its program state in the application context, allowing multiple simultaneous such contexts in the same JVM.</p> </div> </div> <p>ImageJ2 encapsulates its various parts as separate “services” that provide related state functionality and track related program state. An instance of the <a href="https://javadoc.scijava.org/ImageJ/net/imagej/ImageJ.html">net.imagej.ImageJ</a> class is nothing more than a collection of these services; this instance is referred to as the “application gateway.” Services are defined as interfaces, with concrete implementations as plugins. This design provides <a href="http://c2.com/cgi/wiki?SoftwareSeam">seams</a> in the right places so that behavior at every level can be customized and overridden.</p> <h4 id="scijava-services">SciJava services</h4> <p>Here are a few of SciJava Common’s major core services:</p> <ul> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/app/AppService.html">AppService</a></strong> - Tracks software applications (SCIFIO, ImageJ2, etc.) present in the context.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/display/DisplayService.html">DisplayService</a></strong> - Tracks available displays, as well as the active display, and provides the means to create new displays to visualize data.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/event/EventService.html">EventService</a></strong> - Publishes events to the <a href="https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern">event bus</a>, and allows interested parties to subscribe to them. The service provides the central means of communication between various parts of the codebase.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/io/IOService.html">IOService</a></strong> - General tools for opening and saving data within the context.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/menu/MenuService.html">MenuService</a></strong> - Builds the application menu structure.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/module/ModuleService.html">ModuleService</a></strong> - Tracks available modules, and provides the infrastructure for executing them.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/object/ObjectService.html">ObjectService</a></strong> - Tracks available objects of various types, including <a href="https://javadoc.scijava.org/ImageJ/net/imagej/Dataset.html">Dataset</a>s and <a href="https://javadoc.scijava.org/ImageJ/org/scijava/display/Display.html">Display</a>s.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/options/OptionsService.html">OptionsService</a></strong> - Tools for managing program settings.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/platform/PlatformService.html">PlatformService</a></strong> - Provides hooks for extending the application’s behavior depending on the deployment platform (operating system, version of Java, etc.).</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/plugin/PluginService.html">PluginService</a></strong> - Tracks available plugins, and provides the infrastructure for executing them (using the <a href="https://javadoc.scijava.org/ImageJ/org/scijava/module/ModuleService.html">ModuleService</a>).</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/script/ScriptService.html">ScriptService</a></strong> - Provides utilities for running scripts and macros.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/app/StatusService.html">StatusService</a></strong> - Publishes status updates for ongoing operations.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/thread/ThreadService.html">ThreadService</a></strong> - Manages multithreading.</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/tool/ToolService.html">ToolService</a></strong> - Tracks available tools—logic binding user input to behavior—as well as the active tool (selected on the toolbar).</li> <li><strong><a href="https://javadoc.scijava.org/SciJava/org/scijava/ui/UIService.html">UIService</a></strong> - Discovers and launches a user interface for interacting with ImageJ.</li> </ul> <h4 id="imagej2-services">ImageJ2 services</h4> <p>Some of the services which ImageJ2 adds:</p> <ul> <li><strong><a href="https://javadoc.scijava.org/ImageJ/net/imagej/DatasetService.html">DatasetService</a></strong> - Tools for creating and managing image data.</li> <li><strong><a href="https://javadoc.scijava.org/ImageJ/net/imagej/display/ImageDisplayService.html">ImageDisplayService</a></strong> - Similar to <a href="https://javadoc.scijava.org/ImageJ/org/scijava/display/DisplayService.html">DisplayService</a>, but specifically for <a href="https://javadoc.scijava.org/ImageJ/net/imagej/display/ImageDisplay.html">ImageDisplay</a>s.</li> <li><strong><a href="https://javadoc.scijava.org/ImageJ/net/imagej/display/OverlayService.html">OverlayService</a></strong> - Tools for creating and managing image overlays and regions of interest (ROIs).</li> </ul> <h4 id="scifio-services">SCIFIO services</h4> <p>SCIFIO provides several additional services—in particular:</p> <ul> <li><strong><a href="https://javadoc.scijava.org/SCIFIO/io/scif/services/FormatService.html">FormatService</a></strong> - Service for managing available image formats.</li> </ul> <h2 id="menuing-system">Menuing system</h2> <p>The SciJava menuing system is divided into several layers, to make it easier to override its behavior or customize its appearance in a user interface.</p> <h3 id="modules">Modules</h3> <p>Each module known to the system (via the <a href="https://javadoc.scijava.org/ImageJ/org/scijava/module/ModuleService.html">ModuleService</a> can have a <code class="language-plaintext highlighter-rouge">menuPath</code> that says where it should live (by default) in the menu. It also has a <code class="language-plaintext highlighter-rouge">menuRoot</code> that says in <em>which</em> menu it should live, with the default being the <code class="language-plaintext highlighter-rouge">APPLICATION_MENU_ROOT</code>, indicating the main application menu structure.</p> <h3 id="menuservice">MenuService</h3> <p>The <a href="https://javadoc.scijava.org/ImageJ/org/scijava/menu/MenuService.html">MenuService</a> takes care of constructing <a href="https://javadoc.scijava.org/ImageJ/org/scijava/menu/ShadowMenu.html">ShadowMenu</a> tree structures for all available modules in the system, using their <code class="language-plaintext highlighter-rouge">menuPath</code> and <code class="language-plaintext highlighter-rouge">menuRoot</code> values. These tree structures are UI-agnostic. There is one <code class="language-plaintext highlighter-rouge">ShadowMenu</code> per <code class="language-plaintext highlighter-rouge">menuRoot</code>, which can be requested at will from the <code class="language-plaintext highlighter-rouge">MenuService</code>.</p> <h3 id="user-interfaces">User interfaces</h3> <p>The <a href="https://javadoc.scijava.org/ImageJ/org/scijava/ui/UIService.html">UIService</a> then takes care of constructing an actual UI-specific menu bar (or whatever UI components and/or widgets it wants) from the available <code class="language-plaintext highlighter-rouge">ShadowMenu</code>s. There is a type hierarchy beneath the <a href="https://javadoc.scijava.org/ImageJ/org/scijava/menu/MenuCreator.html">MenuCreator</a> interface intended for this purpose; for example, the <a href="https://javadoc.scijava.org/ImageJ/org/scijava/ui/swing/menu/SwingJMenuBarCreator.html">SwingJMenuBarCreator</a> implements <code class="language-plaintext highlighter-rouge">MenuCreator</code> to create and maintain a Swing <a href="https://javadoc.scijava.org/Java/javax/swing/JMenuBar.html">JMenuBar</a> that reflects the state of a particular <code class="language-plaintext highlighter-rouge">ShadowMenu</code>.</p> <h3 id="how-changes-propagate">How changes propagate</h3> <p>When modules are added, removed or changed (via <a href="https://javadoc.scijava.org/ImageJ/org/scijava/module/event/ModulesAddedEvent.html">ModulesAddedEvent</a>, <a href="https://javadoc.scijava.org/ImageJ/org/scijava/module/event/ModulesRemovedEvent.html">ModulesRemovedEvent</a>, <a href="https://javadoc.scijava.org/ImageJ/org/scijava/module/event/ModulesUpdatedEvent.html">ModulesUpdatedEvent</a>), the <code class="language-plaintext highlighter-rouge">MenuService</code> listens and updates the associated <code class="language-plaintext highlighter-rouge">ShadowMenu</code>(s) accordingly. It notifies interested parties that it has done so by firing a corresponding event: <a href="https://javadoc.scijava.org/ImageJ/org/scijava/menu/event/MenusAddedEvent.html">MenusAddedEvent</a>, <a href="https://javadoc.scijava.org/ImageJ/org/scijava/menu/event/MenusRemovedEvent.html">MenusRemovedEvent</a>, or <a href="https://javadoc.scijava.org/ImageJ/org/scijava/menu/event/MenusUpdatedEvent.html">MenusUpdatedEvent</a>.</p> <h2 id="api-version-history">API Version History</h2> <p>A history of API changes is available at: https://abi-laboratory.pro/java/tracker/timeline/scijava-common/</p> <h2 id="further-reading">Further reading</h2> <ul> <li><a href="https://scijava.org/">SciJava website</a></li> <li><a href="https://scijava.org/scijava-common/scijava-common.html">SciJava Common presentation</a></li> <li><a href="https://github.com/imagej/tutorials/">ImageJ tutorials</a></li> <li><a href="https://github.com/scijava/scijava-common/">SciJava Common source code</a></li> </ul> </div> </div> </section> <!-- Footer --> <section id="footer"> <ul class="icons"> <li><a href="https://forum.image.sc/tag/imagej" class="icon alt"><img src="/media/icons/image-sc.png" width="24" style="vertical-align: middle; margin-top: -10px"><span class="label">Forum</span></a></li> <li><a href="https://twitter.com/hashtag/ImageJ" class="icon brands alt fa-twitter"><span class="label">Twitter</span></a></li> <li><a href="https://github.com/imagej" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li> </ul> <ul class="copyright"> <li>Design: <a href="http://html5up.net">HTML5 UP</a></li> </ul> </section> <!-- Hamburger menu --> <nav role="navigation"> <div id="ham-toggle"> <input type="checkbox" /> <span></span> <!-- top bun --> <span></span> <!-- hamburger --> <span></span> <!-- bottom bun --> <ul id="ham-menu"> <div class="menu"><h3>ImageJ Docs</h3> <ul> <li><a href="/downloads">Download</a></li> <li><details><summary>Learn</summary><ul> <li><details><summary><a href="/learn">ImageJ Basics</a></summary><ul> <li><a href="/tutorials">Tutorials</a></li> <li><a href="/learn/user-guides">User Guides</a></li> <li><a href="/learn/keyboard-shortcuts">Keyboard Shortcuts</a></li> <li><a href="/learn/tips-and-tricks">Tips and Tricks</a></li> <li><a href="/learn/troubleshooting">Troubleshooting</a></li> <li><a href="/learn/faq">Frequently Asked Questions</a></li> <li><details><summary><a href="/platforms">Supported Platforms</a></summary><ul> <li><a href="/platforms/windows">Windows</a></li> <li><a href="/platforms/macos">MacOS</a></li> <li><a href="/platforms/linux">Linux</a></li> <li><a href="/platforms/pi">Raspberry Pi</a></li> <li><a href="/platforms/android">Android</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/Supported Platforms --> <li><details><summary><a href="/formats">File Formats</a></summary><ul> <li><a href="/formats/bio-formats">Bio-Formats</a></li> <li><a href="/formats/video">Video formats</a></li> <li><a href="/formats/quicktime">QuickTime</a></li> <li><a href="/formats/tiff">TIFF</a></li> <li><a href="/formats/pdf">PDF</a></li> <li><a href="/formats/dicom">DICOM</a></li> <li><a href="/formats/lsm">Zeiss LSM</a></li> <li><a href="/formats/olympus">Olympus VSI</a></li> <li><a href="/formats/lurawave">Opera Flex</a></li> <li><a href="/formats/fib-sem">FIB-SEM</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/File Formats --> </ul></details></li> <!-- Learn/ImageJ --> <li><details><summary><a href="/imaging">Scientific Imaging</a></summary><ul> <li><a href="/imaging/principles">Principles of Scientific Imaging</a></li> <li><a href="/imaging/annotating-images">Annotating Images</a></li> <li><a href="/imaging/colocalization-analysis">Colocalization</a></li> <li><a href="/imaging/color-image-processing">Color Image Processing</a></li> <li><a href="/imaging/deconvolution">Deconvolution</a></li> <li><a href="/imaging/image-intensity-processing">Image Intensity Processing</a></li> <li><a href="/imaging/particle-analysis">Particle Analysis</a></li> <li><a href="/imaging/registration">Registration</a></li> <li><a href="/imaging/segmentation">Segmentation</a></li> <li><a href="/imaging/stack-slice-manipulations">Stack-slice Manipulations</a></li> <li><a href="/imaging/t-functions">T-functions</a></li> <li><a href="/imaging/tracking">Tracking</a></li> <li><a href="/imaging/visualization">Visualization</a></li> <li><a href="/imaging/z-functions">Z-functions</a></li> </ul></details></li> <!-- Learn/Scientific Imaging --> </ul></details></li> <!-- Learn --> <li><details><summary><a href="/plugins">Extend</a></summary><ul> <li><a href="/list-of-extensions">List of Extensions</a></li> <li><details><summary><a href="/update-sites">Update Sites</a></summary><ul> <li><a href="/list-of-update-sites">List of Update Sites</a></li> <li><a href="/update-sites/following">Following an Update Site</a></li> <li><a href="/update-sites/setup">Creating an Update Site</a></li> <li><a href="/update-sites/tos">Terms of Service</a></li> <li><a href="/update-sites/automatic-uploads">Automatic Upload</a></li> <li><a href="/update-sites/core-uploads">Uploading to Core Sites</a></li> <li><a href="/update-sites/faq">Update Sites FAQ</a></li> <li><a href="/update-sites/stats">Statistics</a></li> </ul></details></li> <!-- Extend/Update Sites --> <li><details><summary><a href="/scripting">Scripting</a></summary><ul> <li><a href="/scripting/basics">Scripting Basics</a></li> <li><a href="/scripting/script-editor">Script Editor</a></li> <li><a href="/scripting/parameters">Parameters</a></li> <li><a href="/scripting/user-input">User Input</a></li> <li><a href="/scripting/auto-imports">Auto Import</a></li> <li><a href="/scripting/templates">Templates</a></li> <li><a href="/scripting/batch">Batch Processing</a></li> <li><a href="/scripting/headless">Running Headlessly</a></li> <li><a href="/scripting/comparisons">Scripting Comparisons</a></li> <li><a href="/scripting/toolbox">Toolbox</a></li> <li><details><summary>Languages</summary><ul> <li><a href="/scripting/beanshell">BeanShell Scripting</a></li> <li><a href="/scripting/groovy">Groovy Scripting</a></li> <li><a href="/scripting/macro">ImageJ Macro</a></li> <li><a href="/scripting/javascript">JavaScript</a></li> <li><a href="/scripting/clojure">Lisp (Clojure)</a></li> <li><a href="/scripting/matlab">MATLAB</a></li> <li><a href="/scripting/jython">Python (Jython)</a></li> <li><a href="/scripting/python">Python (native)</a></li> <li><a href="/scripting/renjin">R (Renjin)</a></li> <li><a href="/scripting/jruby">Ruby (JRuby)</a></li> <li><a href="/scripting/scala">Scala Scripting</a></li> </ul></details></li> <!-- Extend/Scripting/Languages --> </ul></details></li> <!-- Extend/Scripting --> <li><details><summary><a href="/develop">Development</a></summary><ul> <li><a href="/develop/philosophy">Philosophy</a></li> <li><a href="/develop/architecture">Architecture</a></li> <li><a href="/develop/source">Source code</a></li> <li><a href="/develop/project-management">Project management</a></li> <li><a href="/develop/coding-style">Coding style</a></li> <li><a href="/develop/javadoc">Using Javadoc</a></li> <li><a href="/develop/debugging">Debugging</a></li> <li><a href="/develop/wish-list">Wish list</a></li> <li><details><summary>Tools</summary><ul> <li><a href="/develop/github">GitHub</a></li> <li><a href="/develop/maven">Maven</a></li> <li><a href="/develop/ci">CI/CD</a></li> <li><a href="/develop/dotfiles">Dotfiles</a></li> <li><details><summary><a href="/develop/ides">IDEs</a></summary><ul> <li><a href="/develop/eclipse">Eclipse</a></li> <li><a href="/develop/netbeans">NetBeans</a></li> <li><a href="/develop/intellij">IntelliJ IDEA</a></li> <li><a href="/develop/command-line">Command Line</a></li> </ul></details></li> </ul></details></li> <!-- Extend/Development/Tools --> <li><details><summary>Guides</summary><ul> <li><a href="/develop/plugins">Writing plugins</a></li> <li><a href="/develop/improving-the-code">Contributing to a plugin</a></li> <li><a href="/develop/releasing">Development lifecycle</a></li> <li><a href="/develop/building-a-pom">Building a POM</a></li> <li><a href="/develop/debugging-exercises">Hands-on debugging</a></li> <li><a href="/develop/writing-ops">Adding new ops</a></li> <li><a href="/develop/formats">Adding new formats</a></li> <li><a href="/develop/native-libraries">Using native libraries</a></li> <li><a href="/develop/tips">Tips for developers</a></li> <li><a href="/develop/cpp-tips">Tips for C++ developers</a></li> <li><a href="/develop/ij1-plugins">ImageJ 1.x plugins</a></li> <li><a href="/develop/versioning">Versioning</a></li> <li><a href="/develop/logging">Logging</a></li> <li><a href="/develop/uber-jars">Uber-JARs</a></li> </ul></details></li> <!-- Extend/Development/Guides --> <li><details><summary><a href="/develop/git">Git</a></summary><ul> <li><a href="/develop/git/eclipse">Git in Eclipse (EGit)</a></li> <li><a href="/develop/git/mini-howto">Git mini howto</a></li> <li><a href="/develop/git/workshop">Git workshop</a></li> <li><a href="/develop/git/conflicts">Git conflicts</a></li> <li><a href="/develop/git/topic-branches">Git topic branches</a></li> <li><a href="/develop/git/notes">Git notes</a></li> <li><a href="/develop/git/reflogs">Git reflogs</a></li> <li><a href="/develop/git/submodules">Git submodules</a></li> <li><a href="/develop/git/pinpoint-regressions">How to pinpoint regressions</a></li> <li><a href="/develop/git/publish-a-repository">How to publish a git repository</a></li> <li><a href="/develop/git/extract-a-subproject">How to extract a subproject</a></li> </ul></details></li> <!-- Extend/Development/Git --> </ul></details></li> <!-- Extend/Development --> </ul></details></li> <!-- Extend --> <li><details><summary><a href="/contribute">Contribute</a></summary><ul> <li><a href="/contribute/citing">Citing</a></li> <li><a href="/people">Contributors</a></li> <li><a href="/orgs">Organizations</a></li> <li><a href="/contribute/governance">Governance</a></li> <li><a href="/contribute/funding">Funding</a></li> <li><a href="/contribute/fiji">Contributing to Fiji</a></li> <li><details><summary><a href="/licensing">Licensing</a></summary><ul> <li><details><summary><a href="/licensing/open-source">Open Source</a></summary><ul> <li><a href="/licensing/apache">Apache</a></li> <li><a href="/licensing/bsd">BSD</a></li> <li><a href="/licensing/epl">EPL</a></li> <li><a href="/licensing/gpl">GPL</a></li> <li><a href="/licensing/lgpl">LGPL</a></li> <li><a href="/licensing/mit">MIT</a></li> <li><a href="/licensing/public-domain">Public domain</a></li> <li><a href="/licensing/big">BIG</a></li> </ul></details></li> <!-- Contribute/Licensing/Open Source --> <li><a href="/licensing/closed-source">Proprietary</a></li> </ul></details></li> <!-- Contribute/Licensing --> <li><details><summary><a href="/editing">Editing the Wiki</a></summary><ul> <li><a href="/editing/advanced">Advanced Editing</a></li> <li><a href="/editing/buttons">Buttons</a></li> <li><a href="/editing/citations">Citations</a></li> <li><a href="/editing/code">Source Code</a></li> <li><a href="/editing/debugging">Debugging</a></li> <li><a href="/editing/headers">Headers</a></li> <li><a href="/editing/icons">Icons</a></li> <li><a href="/editing/images">Images</a></li> <li><a href="/editing/keys">Keyboard Shortcuts</a></li> <li><a href="/editing/linking">Linking</a></li> <li><a href="/editing/math">Math Expressions</a></li> <li><a href="/editing/menu-paths">Menu Paths</a></li> <li><a href="/editing/navigation">Navigation</a></li> <li><a href="/editing/notices">Notices</a></li> <li><a href="/editing/people">People</a></li> <li><a href="/editing/pitfalls">Pitfalls</a></li> <li><a href="/editing/quizzes">Quizzes</a></li> <li><a href="/editing/statbox">Statbox</a></li> <li><a href="/editing/symbols">Symbols</a></li> <li><a href="/editing/tables">Tables</a></li> <li><a href="/editing/timelines">Timelines</a></li> <li><a href="/editing/tooltips">Tooltips</a></li> <li><a href="/editing/videos">Videos</a></li> <li><a href="/editing/whitespace">Whitespace</a></li> </ul></details></li> <!-- Contribute/Editing the Wiki --> </ul></details></li> <!-- Contribute --> <li><details><summary><a href="/discuss">Discuss</a></summary><ul> <li><a href="/discuss/bugs">Reporting Issues</a></li> <li><a href="/discuss/mailing-lists">Mailing Lists</a></li> <li><a href="/discuss/chat">Chat</a></li> </ul></details></li> <!-- Discuss --> <li><details open><summary>Explore</summary><ul> <li><a href="/news">News</a></li> <li><details><summary><a href="/events">Events</a></summary><ul> <li><a href="/events/presentations">Presentations</a></li> <li><a href="/events/conferences">Conferences</a></li> <li><a href="/events/hackathons">Hackathons</a></li> <li><a href="/events">More...</a></li> </ul></details></li> <!-- Discuss/Events --> <li><details open><summary><a href="/libs">Libraries</a></summary><ul> <li><a href="/libs/imagej-ops">ImageJ Ops</a></li> <li><a href="/libs/imagej-common">ImageJ Common</a></li> <li><a href="/libs/imagej-legacy">ImageJ Legacy</a></li> <li><a class="current-page">SciJava</a></li> <li><a href="/libs/scifio">SCIFIO</a></li> <li><details><summary><a href="/libs/imglib2">ImgLib2</a></summary><ul> <li><a href="/libs/imglib2/getting-started">Getting Started</a></li> <li><a href="/libs/imglib2/accessors">Accessors</a></li> <li><a href="/libs/imglib2/accessibles">Accessibles</a></li> <li><a href="/libs/imglib2/examples">Examples</a></li> <li><a href="/libs/imglib2/workshop-introductory">Introductory Workshop</a></li> <li><a href="/libs/imglib2/workshop-advanced">Advanced Workshop</a></li> <li><a href="/libs/imglib2/matlab">ImgLib2 images in MATLAB</a></li> <li><a href="/libs/imglib2/benchmarks">Benchmarks</a></li> <li><a href="/libs/imglib2/faq">FAQ</a></li> <li><a href="/libs/imglib2/developing">Developing ImgLib2</a></li> <li><a href="/libs/imglib2/discussion">ImgLib2 Discussion</a></li> </ul></details></li> <!-- Explore/Libraries/ImgLib2 --> <li><a href="/libs">More...</a></li> </ul></details></li> <!-- Explore/Libraries --> <li><details><summary><a href="/software">Software</a></summary><ul> <li><a href="/software/nih-image">NIH Image</a></li> <li><a href="/software/imagej">ImageJ</a></li> <li><a href="/software/imagej2">ImageJ2</a></li> <li><a href="/software/fiji">Fiji</a></li> <li><a href="/software">More...</a></li> </ul></details></li> <!-- Explore/Software --> </ul></details></li> <!-- Explore --> </ul> </div> </ul> </div> </nav> <div id="dock-overlay-left" class="dock-overlay" data-dock-target="left-column"></div> <div id="dock-overlay-right" class="dock-overlay" data-dock-target="right-column"></div> <!-- Search results --> <div id="search-results"> <div id="search-hits"></div> <div id="pagination"></div> </div> <!-- Scripts --> <!-- Libraries --> <script src="/assets/js/jquery.min.js"></script> <script src="/assets/js/jquery.scrolly.min.js"></script> <script src="/assets/js/browser.min.js"></script> <script src="/assets/js/breakpoints.min.js"></script> <script src="/assets/js/util.js"></script> <script src="/assets/js/jquery.toc.js"></script> <script src="/assets/js/lightbox.min.js"></script> <!-- Extensions --> <!-- Site code --> <script src="/assets/js/main.js"></script> <script src="/assets/js/dock.js"></script> <script src="/assets/js/code.js"></script> <!-- Anchors --> <script src="https://cdn.jsdelivr.net/npm/anchor-js/anchor.min.js"></script> <script>anchors.add('#page h1, #page h2, #page h3, #page h4, #page h5, #page h6');</script> <!-- Citations --> <script src="https://cdn.jsdelivr.net/npm/citation-js@0.4.0-9"></script> <script src="/assets/js/cite.js"></script> <!-- Search --> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.13.0/dist/algoliasearch-lite.umd.js"></script> <script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4.40.3/dist/instantsearch.production.min.js"></script> <script src="/assets/js/search.js"></script> <script src="/assets/js/search-tweaks.js"></script> </body> </html>