Slicer3:VisualBlog

From NAMIC Wiki
Revision as of 22:17, 25 October 2007 by Kikinis (talk | contribs)
Jump to: navigation, search
Home < Slicer3:VisualBlog



Image from pieper on Tuesday, August 08, 2006 at 4:26PM

Editor-module-prototype.png A number of things have come together to allow the new prototype editor module:

  • the label map layers are enabled
  • lookup table support in the layer logic
  • a new set of 2D UI widgets
  • generalized painting infrastructure, which is based on requests and feedback from NA-MIC Core 3 users and other users of Slicer2
    • paint brush has a 'threshold' option in which the label map only gets painted if the background intensity is in a specified range
    • paint brush optionally won't overpaint existing voxels
    • 'eye dropper' mode allows you to start painting with the label value where you first clicked (so you don't need to go to the UI to change the label color as often).
    • all painting operations can happen on arbitrarily transformed volumes. This allows the painting plane to be aligned with the major axis of a structure like the hippocampus
    • background layers are interpolated to current screen resolution (not limited to nearest neighbor sampling as in slicer2's draw mode)
    • painting is performed using a circular brush with a diameter selected by the user. this makes it easier to follow the contours of curved biological structures.
    • the cursor is turned off on mouse down and reappears on mouse up so you can see the exact pixels you are drawing (a circle around the cursor location indicates the mouse location)

A few limitations make this still a 'prototype' including:

  • there's no convenient way to save your label maps volumes (except as dicom)
  • the color map is currently random
  • only label numbers 0-255 will show as distinct colors
  • no hot keys for frequently used operations
  • brush radius is in screen space units rather than RAS (means that the brush is effectively getting bigger and smaller as you zoom in and out)
  • the paint algorithm is implemented inefficiently and can be slow when painting large numbers of pixels
  • much of the code is written in tcl - new vtk classes are needed to implement the functionality more efficiently.

Image from pieper on Thursday, July 13, 2006 at 4:49PM

Textured-slice-planes.png Test of interactive slice textured plane control. Not yet eneabled through GUI, but driven by a test script that you can source into the console. Type Control-T to bring up interactor, then

source Base/GUI/Testing/TestSliceModels.tcl
SliceModelsAdd

This test does things the right way in that it creates model nodes for the slices and the updates of the planes is triggered by observers on the Slice Logic. But it does things the wrong way in that it creates the texture in an ad hoc way for now since we don't yet have a clean way to specify textures in the model display nodes. Also, the Viewer renders on every changes to the slice view, so as you pan/zoom/scroll the slices the redraws are jerky. Next step is to figure out how best to get this functionality integrated into the C++. Probably there should be a vtkSlicerSliceModelsLogic class that's managed by the vtkSlicerSliceGUI.


Image from blezek on Tuesday, April, 10, 2007 at 8:00AM

Python incorporated into Slicer
Bringing up the Python console











Now, do something interesting with it!

>>> # import MatPlotLib via pylab functions so we can refer to them directly
>>> from pylab import *
>>> imshow ( data[128,:,:] )
>>> # Instruct pylab to show our plots... hit return to continue entering commands.
>>> show()
Voila!











About the VisualBlog

The VisualBlog is meant to be an easy place to upload screenshot so that both developers and outside observes can track the progress of the project.


Upload Script

To simplify the process of uploading images and blog entries, you can use a helper script called wikimage which uploads the image and caption to this page. You must have a Tcl/Tk and curl installed on your machine to use wikimage.

NOTE: tested and working on Windows with Cygwin, needs debugging on Linux.

Example usage
 ./wikimage.tcl screenshot-of-my-new-feature-2006-06-14.png This shows my neat new slicer feature that I added in just minutes of pleasureable coding...

You will need to have a wiki account in order to do the upload. If you're wiki account isn't the same name as your local machine login, use the --user command line option to specify it.

Full usage:

usage: wikimage [options] (image_filename) (caption)
 (image_filename) is the file to upload
 (caption) is the rest of the command line
 [options] is one of the following:
  --gallery : wiki page where image link should be added
  --thumb-size : size of gallery thumbnail (default 200px)
  -u --user : wiki user name (default is env USER)
  -p --password : wiki login password
  --url : url of the wiki (default wiki.na-mic.org)
  -c --cookie-jar : file to save your cookies (default 'mycookies')
  --help : prints this message and exits

Of course after you've uploaded you can use regular wiki tools to edit and augment your caption.

Plans

We're looking into adding the wikimage command as menu item in slicer to further simplify, but for now it can be run on the command line.

Every month or so we can copy the contents of the page to an archive location so this page doesn't get too long.