public class MIPSviewer extends ScreenSelectorClass implements ij.plugin.PlugIn
11/16/11 works well: spins in real time, can throw the mouse to get automatic rotation, etc.
This permits one to display the 3D maximum intensity projection of an object in an image stack.
1. The object can be rotated in any direction using a mouse-drag (hold left button down while
"dragging in the direction of rotation and while the HAND icon is selected on the ImageJ toolbar).
2. The object can be rotated hands-free (continuously, without input = spinning) by 'throwing'
"the mouse cursor (release the mouse button while dragging in the desired direction). To stop
"the automatic rotation, click the mouse anywhere on the window or hit the space bar.
3. Clipping permitted as a % of total viewing depth, where max depth is when viewing dataset
"from the side or from the top (phi or theta = 90 degrees).
4. A movie (AVI) can be created by getting the object in continuous motion in the
"desired direction and hitting the AVI button.
The projection calculation is done in real-time. Large datasets may need to be cropped or resized
(Toolbar->Image->Scale) beforehand to speed up the interaction.\n\n");
MIPSviewerColor
Modifier and Type | Class and Description |
---|---|
protected class |
MIPSviewer.Updater |
Modifier and Type | Field and Description |
---|---|
GenericRecallableDialog |
gd |
protected static ScreenSelectorCanvas |
MIPs_canvas |
protected MIPSviewer.Updater |
updater |
Constructor and Description |
---|
MIPSviewer() |
Modifier and Type | Method and Description |
---|---|
void |
destroy() |
void |
getHeaderInfo(float sliceRatio) |
protected void |
getInitView() |
protected ij.gui.Roi |
getRoi() |
void |
hideGUI() |
void |
mouseDragged(java.awt.event.MouseEvent e) |
void |
mouseMoved(java.awt.event.MouseEvent e) |
void |
mousePressed(java.awt.event.MouseEvent e) |
void |
mouseReleased(java.awt.event.MouseEvent e) |
void |
redisplay() |
void |
resetView() |
void |
run(java.lang.String arg)
This method is called when the plugin is loaded.
|
void |
runGUI() |
void |
saveImage(java.lang.String type) |
void |
setup(boolean[][][] A) |
void |
setup(boolean[][][] A,
float sliceRatio) |
void |
setup(boolean[][][] A,
float sliceRatio,
ij.ImagePlus passedimp) |
void |
setup(boolean[][][] A,
float sliceRatio,
ij.ImagePlus passedimp,
java.util.Properties[] props) |
void |
setup(boolean[][][] A,
float sliceRatio,
java.util.Properties[] props) |
void |
setup(boolean[][][] A,
ij.ImagePlus passedimp) |
void |
setup(byte[][][] A) |
void |
setup(byte[][][] A,
float sliceRatio) |
void |
setup(byte[][][] A,
float sliceRatio,
ij.ImagePlus passedimp) |
void |
setup(byte[][][] A,
float sliceRatio,
ij.ImagePlus passedimp,
java.util.Properties[] props) |
void |
setup(byte[][][] A,
float sliceRatio,
java.util.Properties[] props) |
void |
setup(byte[][][] A,
ij.ImagePlus passedimp) |
void |
setup(short[][][] A) |
void |
setup(short[][][] A,
float sliceRatio) |
void |
setup(short[][][] A,
float sliceRatio,
ij.ImagePlus passedimp) |
void |
setup(short[][][] A,
float sliceRatio,
ij.ImagePlus passedimp,
java.util.Properties[] props) |
void |
setup(short[][][] A,
float sliceRatio,
java.util.Properties[] props) |
void |
setup(short[][][] A,
ij.ImagePlus passedimp) |
void |
setupView(ij.ImagePlus passedimp,
java.util.Properties[] props) |
void |
stop()
WO 1/10/2015 I found and fixed a problem that when trying to destroy this MIPsviewer, it calls updater.quit(), which
calls updater.inturrupt() and then sets the updater=null and viewAd=null, however the thread could still be inside
called the spinning/resetview loop and/or computing the mipsviewbyte such that it will then try to write to the viewAd
inside resetview() after the viewAd is killed.
|
void |
toBack() |
void |
toFront() |
void |
UpdateSelection(int a,
int b,
java.lang.String keytype) |
void |
winLevel() |
void |
zoomIn() |
void |
zoomOut() |
keyPressed, UpdateScreen
public GenericRecallableDialog gd
protected static ScreenSelectorCanvas MIPs_canvas
protected MIPSviewer.Updater updater
public void setup(short[][][] A)
public void setup(short[][][] A, float sliceRatio)
public void setup(short[][][] A, ij.ImagePlus passedimp)
public void setup(short[][][] A, float sliceRatio, ij.ImagePlus passedimp)
public void setup(short[][][] A, float sliceRatio, java.util.Properties[] props)
public void setup(short[][][] A, float sliceRatio, ij.ImagePlus passedimp, java.util.Properties[] props)
public void setup(boolean[][][] A)
public void setup(boolean[][][] A, float sliceRatio)
public void setup(boolean[][][] A, ij.ImagePlus passedimp)
public void setup(boolean[][][] A, float sliceRatio, ij.ImagePlus passedimp)
public void setup(boolean[][][] A, float sliceRatio, java.util.Properties[] props)
public void setup(boolean[][][] A, float sliceRatio, ij.ImagePlus passedimp, java.util.Properties[] props)
public void setup(byte[][][] A)
public void setup(byte[][][] A, float sliceRatio)
public void setup(byte[][][] A, ij.ImagePlus passedimp)
public void setup(byte[][][] A, float sliceRatio, ij.ImagePlus passedimp)
public void setup(byte[][][] A, float sliceRatio, java.util.Properties[] props)
public void setup(byte[][][] A, float sliceRatio, ij.ImagePlus passedimp, java.util.Properties[] props)
public void setupView(ij.ImagePlus passedimp, java.util.Properties[] props)
protected void getInitView()
public void getHeaderInfo(float sliceRatio)
public void run(java.lang.String arg)
ij.plugin.PlugIn
run
in interface ij.plugin.PlugIn
public void runGUI()
public void destroy()
public void hideGUI()
public void saveImage(java.lang.String type)
public void winLevel()
public void redisplay()
public void resetView()
public void zoomIn()
public void zoomOut()
public void toFront()
public void toBack()
public void UpdateSelection(int a, int b, java.lang.String keytype)
UpdateSelection
in class ScreenSelectorClass
public void mouseMoved(java.awt.event.MouseEvent e)
mouseMoved
in class ScreenSelectorClass
public void mousePressed(java.awt.event.MouseEvent e)
mousePressed
in class ScreenSelectorClass
public void mouseReleased(java.awt.event.MouseEvent e)
mouseReleased
in class ScreenSelectorClass
public void mouseDragged(java.awt.event.MouseEvent e)
mouseDragged
in class ScreenSelectorClass
protected ij.gui.Roi getRoi()
public void stop()