Git Product home page Git Product logo

ami's Introduction

ami's People

Contributors

adefrutoscasado avatar alexnederlof avatar alexswensen avatar andy23512 avatar cancan101 avatar chenkaic4 avatar daron1337 avatar eduardor2k avatar herrvoennchen avatar hurryhuang1007 avatar jbernal0019 avatar jgonzabal avatar jsdelivrbot avatar jsibir avatar marcinlichwala-tomtom avatar meawoppl avatar mtm12 avatar nicolasrannou avatar okrad avatar pjotrsvetachov avatar ptiluky avatar rudolphpienaar avatar rwirz avatar theblindprophet avatar tibetegya avatar tymiao1220 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  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  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

ami's Issues

DICOM Loader THREEJS friendly

Mimic THREEJS loading/parsing approach for DICOM.

Ideally it create a "ImageHelper" (contains geometries + textures + stackHelpers)

Terminology:
Geometry: -
Texture: -
Helper: Geometry + Texture. It is a ThreeJS Object that can be visualized.

allow fine rotation of otho camera

rotate should get the rotation angle as input

this rotation angle should be the angle relative to the current rotation (or relative to the default orientation?)

Layers shader slow *sometimes*

Sometimes it is painfully slow to scroll between slices in lesson 04 or examples label maps or image compare.

Just rebuilding AMI fixes it sometimes...

2D Representation isn't working

Whenever I use a serie to make a 2D representation, following the example, I get almost half the serie that works, then the other half is just noise (like on old tvs).

Here's the view for the images that don't compute

I don't know where it comes from, as it works on the OSIRIX desktop viewer.

It's the same on the example where I load dicom files with those series.
Is there something I'm missing ?

Thanks.

Update README

README is outdated, it should reflect current implementation, logic and goals.

add filename in frame object

it will also help cleanup the lesson 02, where 2 series are being loaded but it is hard to know which file belong to which series without it.

slice geometry

Create a THREEJS like slice geometry to slice a cube easily.

Create VJS controls

Right now, we are using tweaked THREEJS controls.

We should create medical imaging specific controls.

  • for 2D orthographic camera:
    -> scroll: go through slices
  • for 3D perspective camera:
    -> scroll: zoom

Allow to hook up special behavior, in XTK like way.

add argument to rotate to allow user to decide rotation direction

https://github.com/FNNDSC/ami/blob/master/src/cameras/cameras.orthographic.js

camera.rotate(); // clockwise
camera.rotate(-1); // counter clock-wise

in cameras.ortho

  rotate( clockwise=1) {
    this.center();

    // Pi/2 rotation if camera is positions at the front of the volume
    // else -Pi/2 rotation
    let invertClock = 1;
    if(this.position.distanceTo(this._back) < this.position.distanceTo(this._front)){
      invertClock = -1;
    }

    // Rotate the up vector around the "zCosine"
    let rotation = new THREE.Matrix4().makeRotationAxis(
      this._zCosine, 
      clockwise * invertClock * Math.PI/2);
    this.up.applyMatrix4(rotation);

    this._updateMatrices();
  }

Remove data from github

Data should be hosted in a proper location and the github repo should only contain source code.

Minimal/(very)small datasets are acceptable for testings.

data texture

create a shader texture which will display target data over an object if location matches.

Polymer viewer

Create a simple dicom view element.
Input: data = [image1, image2, image3, etc.]

Models and views should be THREEJS like

A THREEJS dev should be confortable with using VJS. Follow same conventions and logic.

VJS allows us to create/update Frame, Stack and Image geometries.
Same for textures.

Might also need helpers such as "ArrowHelper", etc.

Assets

Store here larger files not to make git source code too big

Black Box when exporting to OBJ Format

I used the Three.js obj exporter https://github.com/mrdoob/three.js/blob/master/examples/js/exporters/OBJExporter.js

and this code to download the file `

var exporter = new THREE.OBJExporter();
var result = exporter.parse(scene);

var link = document.createElement('a');
document.body.appendChild(link); 
save( new Blob( [ result], { type: 'text/plain' } ), 'model.obj' );

function save( blob, filename ) {

    link.href = URL.createObjectURL( blob );
    link.download = filename || 'data.json';
    link.click();

    // URL.revokeObjectURL( url ); breaks Firefox...

}`

and i get a black box

Potential windows bug

examples/viewers_dicom2D/index.html three.min.js:631 THREE.WebGLRenderer 75 models.stack.js:235 do not know how to order the frames... – Hemanth Anakapalle 10 hours ago

three.min.js:704 THREE.WebGLProgram: shader error: 0 gl.VALIDATE_STATUS false gl.getProgramInfoLog C:\fakepath(167,37-79): error X4002: indefinite logarithm Warning: D3D shader compilation failed with default flags. (ps_3_0) Retrying with avoid flow control C:\fakepath(167,37-79): error X4002: indefinite logarithm Warning: D3D shader compilation failed with avoid flow control flags. (ps_3_0) Retrying with prefer flow control C:\fakepath(167,37-79): error X4002: indefinite logarithm – Hemanth Anakapalle 10 hours ago

Warning: D3D shader compilation failed with prefer flow control flags. (ps_3_0) Failed to create D3D shaders. – Hemanth Anakapalle 10 hours ago

WebGL: INVALID_OPERATION: useProgram: program not valid three.min.js:671 WebGL: INVALID_OPERATION: drawArrays: no valid shader program in use 254three.min.js:600 WebGL: INVALID_OPERATION: useProgram: program not valid three.min.js:600 WebGL: too many errors, no more errors will be reported to the console for this context. – Hemanth Anakapalle 10 hours ago

I am seeing all these errors over browser console. I am trying this over windows, Is it fine ? –

SEO lessons

sitemaps, robots.txt, canonical url, etc.

2 series loaded in lesson 02

we should only load 1 series.

As a result, the stack displayed is not always the one presented in the thumbnail.

Re defining mouse inputs

Is it possible to define what each mouse input do ?
For instance, I want to change the index via mouse wheel, change ww/wc via left click instead of having them in stack helpers.
I cannot find it in any example.

EDIT: I guess I spoke too fast.

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.