Skip to content

About

ImgLib2-based viewer for registered SPIM stacks and more

Resources

Stars

46 stars

Watchers

11 watching

Forks

Latest commit

 

History

1,805 Commits

Folders and files

Repository files navigation

Build Status

developer chat

logo logo

ImgLib2-based re-slicing viewer for terabyte-sized multi-view image sequences. See https://imagej.net/plugins/bdv for (somewhat out-dated) user documentation.

BigDataViewer is designed to be re-used as a visualization component in other software (besides being a stand-alone Fiji plugin). Examples include ABBA, BigStitcher, BigWarp, Labkit, MaMuT, Mastodon, MoBIE, Paintera.

vistools

The best entry point for using BDV in your own project is the BdvFunctions class. A short introduction is below, and you can find a lot of short examples here.

Usage

Random random = new Random();
Img<ARGBType> img = ArrayImgs.argbs(100, 100, 100);
img.forEach(t -> t.set(random.nextInt()));
Bdv bdv = BdvFunctions.show(img, "img");

creates a random 3D ARGB img and shows it in a BDV window.

All BdvFunctions methods will return some instance of Bdv which can be used to close the BDV window:

bdv.close()

or add more stuff to the same window:

BdvFunctions.show(img2, "img2", Bdv.options().addTo(bdv));

Via bdv.getBdvHandle() you can get access to the BDV ViewerPanel and SetupAssignments allowing more fine-grained manipulations of BDV state.

The concrete Bdv instance returned from BdvFunctions.show(img, "img") in the above example is BdvStackSource<ARGBType> and has additional methods, e.g., removeFromBdv() which removes img from the BDV window.

To display a 2D image, display a 3D image as a stack of 2D slices over time etc:

BdvFunctions.show(img2, "img2", Bdv.options().is2D());

The is2D() option is per Viewer window, not per stack. If it is set, the BDV navigation mouse and keybindings are set up for 2D, etc...

More fine-grained control can be achieved with axisOrder() option:

BdvFunctions.show(img2, "img2", Bdv.options().is2D().axisOrder(XYT))

AxisOrder specifies how the stack dimensions are interpreted. For BDV with 3D navigation, the follwoing are useful: XYZ, XYZC, XYZT, XYZCT, XYZTC. For BDV with 2D navigation, the following are useful: XY, XYC, XYT, XYCT, XYTC. You should interpret C and T losely. The effect is that T will be mapped to the time slider of the BDV, while C is mapped to BDV sources. (This also means that you should not have images with a large C dimension.)

There is/will be stuff to add annotation overlays. Currently BdvFunctions.showPoints() is available.

Here is an example screenshot where several 3D stacks, a set of boundary points, and 3D ellipsoids fitted to the boundary points were added to a BDV window. It also shows how the usual BDV dialogs can be used to adjust visibility / brightness / colors of tbe individual sources. screenshot

About

ImgLib2-based viewer for registered SPIM stacks and more

Resources

Stars

46 stars

Watchers

11 watching

Forks

Releases

Packages

Used by

Contributors

Languages