Giter Site home page Giter Site logo

scenerygraphics / sciview Goto Github PK

View Code? Open in Web Editor NEW
65.0 9.0 17.0 15.44 MB

sciview is a tool for visualization and interaction with ND image and mesh data

License: BSD 2-Clause "Simplified" License

Java 75.95% Shell 0.01% GLSL 0.39% Python 0.39% HTML 0.04% Kotlin 23.21%
fiji imagej 3d visualization image-processing sciview scenery hacktoberfest

sciview's People

Contributors

aryaman-gupta avatar axtimwalde avatar ctrueden avatar dependabot[bot] avatar domino2357 avatar elect86 avatar frauzufall avatar haesleinhuepf avatar imagejan avatar kephale avatar ltempel avatar moreapi avatar skalarproduktraum avatar smlpt avatar tferr avatar tpietzsch avatar wrongapocalypse avatar xulman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sciview's Issues

Skeleton graphs

Can we set something up to convert the result of a thin op into a skeleton graph?

This is done by AnalyzeSkeleton.

@rimadoma

Maybe this isn't a SciView feature, but we care about this a bit because we started solving for skeletons using a purely graph-based approach.

Bounding box with units

Add the ability to enclose objects with bounding boxes that have tick marks indicating units.

Compatibility with 3D_Viewer

The 3D viewer in SNT is getting on everybody's nerves, as it now stalls half-way through the most simple operation. Before I look into it (I will spending the next months fixing SNT), I was wondering if we should start using ThreeDViewer. Do you have any advice on this? Are there any plans to make the ThreeDViewer backward compatible with the legacy 3D_Viewer?

Scale bar

Scale bar for indicating the unit length (let's do this better than the old 3D viewer)

SciView update site wants to downgrade imglib2-* in my Fiji

Hi,

running update Fiji today I spotted that SciView update site was attempting to downgrade some imglib2 stuff... only caught my attention because I would expect imglib2/coreFiji update site to update the imglib2 stuff. See attached screen shot:

screen shot 2018-06-05 at 12 18 12

Isn't there an issue that SciView is coping more by mistake?

Vlado

PS: Thanks for SciView!

Use LUTs instead of scenery colormaps

I believe that LUTs can be transferred to scenery by converting the LUT into a GenericTexture, then using material.textures.put("normal","fromBuffer:[transferTextureName]") with transferTextureName as the name of the GenericTexture.

Orthogonal Views

Orthogonal views was another way of viewing an image in 3D. This might be easily achieved via textures and Scenery's Plane Node.

Recording movies

The scene can currently be animated via rotation. However, the screenshot mechanism leaves much to be desired for creating a proper movie that captures every frame.

Visual discrepancy when using scenery's fitInto in conjunction with ops

This isn't an issue, but I wanted to document this somewhere.

If you do something like:

msh.fitInto( 15.0f, true );

Then call an op like convex hull on msh

The convex hull will not look like a convex hull. This is because fitInto only alters the rendering, not the underlying mesh.

Trying to export a STL file throws a NullPointerException

No matter how you create a view with a mesh (add your own programmatically, run SciView>Add Box...), trying to export an STL file causes a NullPointerException at https://github.com/scenerygraphics/SciView/blob/master/src/main/java/sc/iview/io/ExportSTL.java#L30 because there are no viewers in DefaultSciViewService.

Steps to reproduce

  1. Run ImageJ
  2. Run SciView >Add>Box
  3. Run SciView>Export>STL_

Environment

  • Win 8.1 64-bit
  • JRE 1.8.0_152
  • Vulkan renderer (JVM -Dscenery.Renderer=VulkanRenderer)
  • Lenovo G50-70

Resize bug

When I resize in SciView I get a tiling effect:

image

Menu bar independent of ImageJ

Curtis had some suggestions on how to make sure it also works within ImageJ, but first let's just get it working in standalone.

Bugs in 0.1.0

  • Tried to run convex hull on Robert's shell mesh (in main/resources) and got:
java.lang.IndexOutOfBoundsException
	at java.nio.Buffer.checkIndex(Buffer.java:540)
	at java.nio.DirectFloatBufferU.get(DirectFloatBufferU.java:253)
	at graphics.scenery.HasGeometry$DefaultImpls.recalculateNormals(HasGeometry.kt:825)
	at graphics.scenery.Mesh.recalculateNormals(Mesh.kt:14)
	at sc.iview.process.MeshConverter.toScenery(MeshConverter.java:85)
	at sc.iview.SciView.addMesh(SciView.java:724)
	at sc.iview.ops.ConvexHull.run(ConvexHull.java:66)
	at org.scijava.command.CommandModule.run(CommandModule.java:199)
	at org.scijava.module.ModuleRunner.run(ModuleRunner.java:168)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:66)
	at org.scijava.thread.DefaultThreadService$3.call(DefaultThreadService.java:238)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:748)
  • When voxelizing a mesh, 2 images are shown instead of 1.

  • When loading the shell mesh, then voxelizing it, and reimporting as isosurface, I got:

java.lang.ClassCastException: net.imglib2.type.numeric.integer.UnsignedByteType cannot be cast to net.imglib2.type.logic.BitType
	at net.imglib2.type.logic.BitType.compareTo(BitType.java:55)
	at net.imagej.ops.threshold.apply.ApplyThresholdComparable.compute(ApplyThresholdComparable.java:56)
	at net.imagej.ops.threshold.apply.ApplyThresholdComparable.compute(ApplyThresholdComparable.java:46)
	at net.imagej.ops.special.computer.BinaryComputerOp.compute(BinaryComputerOp.java:93)
	at net.imagej.ops.map.MapIterableToIterable.compute(MapIterableToIterable.java:58)
	at net.imagej.ops.map.MapIterableToIterable.compute(MapIterableToIterable.java:47)
	at net.imagej.ops.threshold.apply.ApplyConstantThreshold.compute(ApplyConstantThreshold.java:73)
	at net.imagej.ops.threshold.apply.ApplyConstantThreshold.compute(ApplyConstantThreshold.java:50)
	at net.imagej.ops.threshold.AbstractApplyThresholdIterable.compute(AbstractApplyThresholdIterable.java:52)
	at net.imagej.ops.threshold.AbstractApplyThresholdIterable.compute(AbstractApplyThresholdIterable.java:43)
	at net.imagej.ops.special.hybrid.UnaryHybridCF.calculate(UnaryHybridCF.java:61)
	at net.imagej.ops.special.hybrid.UnaryHybridCF.run(UnaryHybridCF.java:71)
	at net.imagej.ops.special.hybrid.UnaryHybridCF.run(UnaryHybridCF.java:97)
	at org.scijava.command.CommandModule.run(CommandModule.java:199)
	at net.imagej.ops.OpEnvironment.run(OpEnvironment.java:944)
	at net.imagej.ops.OpEnvironment.run(OpEnvironment.java:156)
	at net.imagej.ops.threshold.ThresholdNamespace.apply(ThresholdNamespace.java:82)
	at sc.iview.io.ImportIsosurface.run(ImportIsosurface.java:67)
	at org.scijava.command.CommandModule.run(CommandModule.java:199)
	at org.scijava.module.ModuleRunner.run(ModuleRunner.java:168)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:66)
	at org.scijava.thread.DefaultThreadService$3.call(DefaultThreadService.java:238)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:748)

Edit @skalarproduktraum: Changed to task list

Transparency for meshes

Transparency for mesh rendering existed in the previous 3D Viewer. This requires a little more effort for the Scenery-based renderer due to shaders.

Introduce SciView Object?

Would it be worth it to make a SciView Object/Element/Node type? It would inherit from a Scenery Node, but be able to generate its own IJ2 dialogs for creation/adding, editing, and deleting based on its state and the state of the scenegraph. It could also be used for default implementations of SciJava Event handling, and other SciJava and ImageJ integration.

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.