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:
ImageObserver,MenuContainer,Serializable
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 ^ __________
| /
| /
| / invalid input: '<'------- 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:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescription(package private) ModelLUTDOCUMENT ME!private static final longUse 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, zNFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionViewJComponentHistoLUT(HistoLUTParent _histoFrame, ModelHistogram _histo, ModelLUT _lut, ModelImage _image) Creates new component histogram LUT. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddFunctionPoint(float x, float y) Add a new function point to the current LUT transfer function.voidcheckProximityToTransferFunction(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.voidctMode(int preset1, int preset2) Sets mode to CT and sets range to CT presets.voiddispose()Sets variables to null and gets rid of frame.voiddragPoint(MouseEvent mouseEvent) Drag a point on the Histo LUT to another value.voiddualThresholdMode(int newMode) Switch the histogram component to (inverse or regular) dual threshold mode.voidEvenly distributed the controls points of linear transfer function.protected voidfinalize()Clean up some resources!getLUT()Get the lookup table associated with the image and histogram.floatDOCUMENT ME!Get the current transfer function we are working with.voidSets mode to linear and shows component.voidPaints the component.voidRemove the point of the LUT transfer function which the mouse is hovering over (determined bymouseMotion).private floatsetLinearIndex(float mx, float my) Checks boundaries for new dragged point in LUT.voidsetLUT(ModelStorageBase newLUT) Change the lookup table associated with the image and histogram.voidshowHistogram(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.voidupdateCursor(float _mx, float _my, int _index) Update the cursor position when mouse slider is moved.voidupdateCursorXPos(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, updateTransFuncMethods 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, updateUIMethods 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, validateTreeMethods 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 Details
-
serialVersionUID
private static final long serialVersionUIDUse serialVersionUID for interoperability.- See Also:
-
lut
ModelLUT lutDOCUMENT ME!
-
-
Constructor Details
-
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 Details
-
addFunctionPoint
public void addFunctionPoint(float x, float y) Add a new function point to the current LUT transfer function.- Specified by:
addFunctionPointin 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:
checkProximityToTransferFunctionin 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:
disposein classViewJComponentHLUTBase
-
dragPoint
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:
dualThresholdModein 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:
evenDistributionin classViewJComponentHLUTBase
-
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
Get the current transfer function we are working with.- Overrides:
getTransferFunctionin classViewJComponentHLUTBase- Returns:
- the LUT tranfer function
-
linearMode
public void linearMode()Sets mode to linear and shows component.- Specified by:
linearModein classViewJComponentHLUTBase
-
paintComponent
Paints the component.- Overrides:
paintComponentin 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:
removeClickedFunctionPointin classViewJComponentHLUTBase
-
setLUT
Change the lookup table associated with the image and histogram.- Specified by:
setLUTin classViewJComponentHLUTBase- Parameters:
newLUT- the new lut
-
showHistogram
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:
showHistogramin 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
Clean up some resources!- Overrides:
finalizein classViewJComponentHLUTBase- Throws:
Throwable- DOCUMENT ME!
-