Giter VIP home page Giter VIP logo

bvv-playground's Introduction

Build Status

BigVolumeViewer-playground

This is a fork of BVV to play around with some new features:

  • using LUTs;
  • using gamma correction;
  • using different volume render methods (transparency/illumination);
  • clipping of displayed sources in shaders without reloading them.

Currently synced to BVV version 0.3.3 (this commit).

How to install it for users

Download latest zip archive with jar files from releases
(it is called bvv-playground-X.X.X_jar_files.zip),
extract and put them to the jar folder of the latest FIJI installation.

The plugin should appear in the Plugins>BigDataViewer>BVV-playground

It works in the same way as BigVolumeViewer, but there are some new additional features (see below).

Additional features

First of all, "Brightness and Color" dialog (shortcut S) is different:

brighntess dialog

*(works also with Cards panel, activated by shortcut P)

It uses range sliders (and one can pull the range by dragging the middle interval).

A standard "brightness" is now called "LUT range", it maps image intensity values to specific colors. This mapping can be done non-linearly by adjusting "LUT γ", gamma value (a power-law).

In addition to color, one can also independently map intensity values to an opacity of voxel using "α range" (with a corresponding "α γ" gamma adjustment slider below).

A new additional checkbox on the left is used to synchronize top pair of sliders (LUT) with the bottom pair (α), but not the other way around. It also synchronizes ranges in the extended view (>> button).

A new shortcut O (letter) is used to switch between "Maximum intensity projection" and "Volumetric" rendering. By "volumetric" I mean "transparency" or "alpha-blending" ray-casting. These two different render methods are illustrated below:
Maximum intensity
Maximum intensity render
Volumetric
Maximum intensity render

Displaying volumes with LUTs and clipped view at the current stage are available only from the code (see an example).

For developers

A list of additional methods (adding LUTs and volume clipping) is illustrated by this example.
There is a possibility to specify "clipping transform", shown here.

The project is currently under development and has a lot of "experimental" code (i.e. not clean and in the state of "well, at least it works"). So comments and optimization suggestions are welcome.

Adding project in maven

This project lives in scijava.public maven repository. To use it in your own project, add to your pom.xml :

<repositories>
....	
	<repository>
		<id>scijava.public</id>
		<url>https://maven.scijava.org/content/groups/public</url>
	</repository>
</repositories>

and add corresponding dependency:

<dependency>
  <groupId>nl.uu.science.cellbiology</groupId>
  <artifactId>bvv-playground</artifactId>
  <version>X.X.X</version>
</dependency>

Developed in Cell Biology group of Utrecht University.
E-mail for any questions.

bvv-playground's People

Contributors

tpietzsch avatar ekatrukha avatar skalarproduktraum avatar ctrueden avatar elect86 avatar

Stargazers

Nicolas Chiaruttini avatar  avatar

Watchers

 avatar Jan Eglinger avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.