Package gov.nih.mipav.view
Class ViewJComponentHistoLUT
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- gov.nih.mipav.view.ViewJComponentHLUTBase
-
- gov.nih.mipav.view.ViewJComponentHistoLUT
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
public class ViewJComponentHistoLUT extends ViewJComponentHLUTBase
This class extends the ViewJComponentHLUTBase class and used to coordinate how a histogram and LUT for an image are to be displayed to the screen. For display purposes, this component has a LUT Model. Note y inversion in transfer segment because graphical origin is in upper left corner.255 ^ __________ | / | / | / <------- Transfer function | / L | / U | / T | / | / | / |______/ 0 |________________________________> min max Image intensity
The transfer function ( member of the LUT class) dictates how the image intensity values are converted into the LUT.
- Version:
- 0.1 Aug 1, 1997
- Author:
- Matthew J. McAuliffe, Ph.D.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description (package private) ModelLUT
lut
DOCUMENT ME!private static long
serialVersionUID
Use serialVersionUID for interoperability.-
Fields inherited from class gov.nih.mipav.view.ViewJComponentHLUTBase
addPointFlag, ALL, ALPHA, backgroundColor, BLUE, componentDim, crosshairCursor, CT, dim, DUAL_THRESHOLD, DUAL_THRESHOLD_INV, GREEN, handCursor, histogram, histogramBuffer, histogramMax, histogramMaxLog, histogramParent, image, img, INACTIVE, index, LINEAR, logFlag, lutIndexBuffer, mode, moveCursor, NO_THRESHOLD, offsetX, offsetY, pixBuffer, range, RED, resizeCursor, STAIRCASE, stRange, THRESHOLD, thresholdMode, x, xN, y, yN, z, zN
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description ViewJComponentHistoLUT(HistoLUTParent _histoFrame, ModelHistogram _histo, ModelLUT _lut, ModelImage _image)
Creates new component histogram LUT.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addFunctionPoint(float x, float y)
Add a new function point to the current LUT transfer function.void
checkProximityToTransferFunction(float px, float py, boolean remove)
Check to see if the position of the mouse is close to one of the points in the LUT transfer function or the line drawn in between the points.void
ctMode(int preset1, int preset2)
Sets mode to CT and sets range to CT presets.void
dispose()
Sets variables to null and gets rid of frame.void
dragPoint(java.awt.event.MouseEvent mouseEvent)
Drag a point on the Histo LUT to another value.void
dualThresholdMode(int newMode)
Switch the histogram component to (inverse or regular) dual threshold mode.void
evenDistribution()
Evenly distributed the controls points of linear transfer function.protected void
finalize()
Clean up some resources!ModelLUT
getLUT()
Get the lookup table associated with the image and histogram.float
getThresholdFill()
DOCUMENT ME!TransferFunction
getTransferFunction()
Get the current transfer function we are working with.void
linearMode()
Sets mode to linear and shows component.void
paintComponent(java.awt.Graphics g)
Paints the component.void
removeClickedFunctionPoint()
Remove the point of the LUT transfer function which the mouse is hovering over (determined bymouseMotion
).private float
setLinearIndex(float mx, float my)
Checks boundaries for new dragged point in LUT.void
setLUT(ModelStorageBase newLUT)
Change the lookup table associated with the image and histogram.void
showHistogram(ModelLUT LUT)
Filters the histogram through the LUT and produces an int array (aRGB) that can be converted to a java image of the histogram for display purposes.void
updateCursor(float _mx, float _my, int _index)
Update the cursor position when mouse slider is moved.void
updateCursorXPos(float _mx, float _my, int _index)
Update the cursor position when mouse slider is moved.-
Methods inherited from class gov.nih.mipav.view.ViewJComponentHLUTBase
getImage, getMinimumSize, getMode, getPreferredSize, importImage, isVolOpacityChanged, setHistogramInfo, setLogFlag, setMode, showHistogram, updateDualThreshold, updateTransFunc
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Use serialVersionUID for interoperability.- See Also:
- Constant Field Values
-
lut
ModelLUT lut
DOCUMENT ME!
-
-
Constructor Detail
-
ViewJComponentHistoLUT
public ViewJComponentHistoLUT(HistoLUTParent _histoFrame, ModelHistogram _histo, ModelLUT _lut, ModelImage _image)
Creates new component histogram LUT.- Parameters:
_histoFrame
- Frame where histogram is to be displayed_histo
- histogram model_lut
- lut used to display histogram_image
- image of the displayed histogram and associated LUT
-
-
Method Detail
-
addFunctionPoint
public void addFunctionPoint(float x, float y)
Add a new function point to the current LUT transfer function.- Specified by:
addFunctionPoint
in classViewJComponentHLUTBase
- Parameters:
x
- the x position within the component to add the new pointy
- the y position within the component to add the new point
-
checkProximityToTransferFunction
public void checkProximityToTransferFunction(float px, float py, boolean remove)
Check to see if the position of the mouse is close to one of the points in the LUT transfer function or the line drawn in between the points.- Specified by:
checkProximityToTransferFunction
in classViewJComponentHLUTBase
- Parameters:
px
- the x position within the componentpy
- the y position within the componentremove
- whether we want to remove a point (assuming that we are near one)
-
ctMode
public void ctMode(int preset1, int preset2)
Sets mode to CT and sets range to CT presets.- Parameters:
preset1
- first CT presetpreset2
- second CT preset
-
dispose
public void dispose()
Sets variables to null and gets rid of frame.- Overrides:
dispose
in classViewJComponentHLUTBase
-
dragPoint
public void dragPoint(java.awt.event.MouseEvent mouseEvent)
Drag a point on the Histo LUT to another value.- Parameters:
mouseEvent
- the mouse dragged event (passed on from the containing panel)
-
setLinearIndex
private float setLinearIndex(float mx, float my)
Checks boundaries for new dragged point in LUT.- Parameters:
mx
- new x value for point based on mouse movementmy
- new y value for point based on mouse movement- Returns:
- the resulting x[index] based on boundary checks
-
dualThresholdMode
public void dualThresholdMode(int newMode)
Switch the histogram component to (inverse or regular) dual threshold mode.- Specified by:
dualThresholdMode
in classViewJComponentHLUTBase
- Parameters:
newMode
- either DUAL_THRESHOLD, DUAL_THRESHOLD_INV, or NO_THRESHOLD
-
evenDistribution
public void evenDistribution()
Evenly distributed the controls points of linear transfer function.- Specified by:
evenDistribution
in classViewJComponentHLUTBase
-
getLUT
public ModelLUT getLUT()
Get the lookup table associated with the image and histogram.- Returns:
- returns the LUT used to display the image
-
getThresholdFill
public float getThresholdFill()
DOCUMENT ME!- Returns:
- DOCUMENT ME!
-
getTransferFunction
public TransferFunction getTransferFunction()
Get the current transfer function we are working with.- Overrides:
getTransferFunction
in classViewJComponentHLUTBase
- Returns:
- the LUT tranfer function
-
linearMode
public void linearMode()
Sets mode to linear and shows component.- Specified by:
linearMode
in classViewJComponentHLUTBase
-
paintComponent
public void paintComponent(java.awt.Graphics g)
Paints the component.- Overrides:
paintComponent
in classViewJComponentHLUTBase
- Parameters:
g
- graphics to paint in
-
removeClickedFunctionPoint
public void removeClickedFunctionPoint()
Remove the point of the LUT transfer function which the mouse is hovering over (determined bymouseMotion
).- Specified by:
removeClickedFunctionPoint
in classViewJComponentHLUTBase
-
setLUT
public void setLUT(ModelStorageBase newLUT)
Change the lookup table associated with the image and histogram.- Specified by:
setLUT
in classViewJComponentHLUTBase
- Parameters:
newLUT
- the new lut
-
showHistogram
public void showHistogram(ModelLUT LUT)
Filters the histogram through the LUT and produces an int array (aRGB) that can be converted to a java image of the histogram for display purposes.- Specified by:
showHistogram
in classViewJComponentHLUTBase
- Parameters:
LUT
- LUT to filter with
-
updateCursor
public void updateCursor(float _mx, float _my, int _index)
Update the cursor position when mouse slider is moved.- Parameters:
_mx
- cursor x postion._my
- cursor y position._index
- cursor index
-
updateCursorXPos
public void updateCursorXPos(float _mx, float _my, int _index)
Update the cursor position when mouse slider is moved.- Parameters:
_mx
- cursor x postion._my
- cursor y position._index
- cursor index
-
finalize
protected void finalize() throws java.lang.Throwable
Clean up some resources!- Overrides:
finalize
in classViewJComponentHLUTBase
- Throws:
java.lang.Throwable
- DOCUMENT ME!
-
-