Class SingleImagePanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- com.pixelmed.display.SingleImagePanel
-
- All Implemented Interfaces:
java.awt.event.KeyListener
,java.awt.event.MouseListener
,java.awt.event.MouseMotionListener
,java.awt.event.MouseWheelListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
public class SingleImagePanel extends javax.swing.JComponent implements java.awt.event.KeyListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.awt.event.MouseWheelListener
Implements a component that can display a single or multi-frame image in a single panel with window center/width adjustment, scrolling through frames of a multi-frame image, resizing to the size of the panel, annotation of pre-defined text and shapes, feedback of cursor position status (2D and 3D position, pixel value, window).
Includes a main() method for testing that will display a single image from a file in a JFrame.
About the most minimal code to display a single DICOM image looks like this:
JFrame p = new JFrame(); p.add(new SingleImagePanel(new SourceImage(filename))); p.setBackground(Color.BLACK); p.setSize(512,512); p.setVisible(true);
- See Also:
SourceImage
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
SingleImagePanel.LeftMouseMode
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Set<SuperimposedImage.AppliedToUnderlyingImage>
activeSuperimposedImagesAppliedToUnderlyingImage
protected double[]
currentLocationIn3DSpace
This value is outside mouseMoved() only so that it doesn't need to be constantly reallocated - it is not used by any other methodprotected GeometryOfVolume
imageGeometry
protected java.util.Vector<java.awt.Shape>
interactiveDrawingShapes
protected SingleImagePanel.LeftMouseMode
leftMouseMode
protected java.util.Vector<java.awt.Shape>
localizerShapes
protected com.pixelmed.display.OrientationAnnotations
orientationAnnotations
protected java.awt.Color
orientationColor
protected java.awt.Font
orientationFont
protected DisplayedAreaSelection
originalDisplayedAreaSelection
protected java.util.Vector<java.awt.Shape>[]
perFrameDrawingShapes
protected java.util.Vector<java.awt.Shape>
persistentDrawingShapes
protected java.util.Vector<com.pixelmed.display.TextAnnotation>
persistentDrawingText
protected double
pixelSpacingInSourceImage
protected java.util.Vector<java.awt.Shape>
preDefinedShapes
protected java.util.Vector<java.awt.Shape>
preDefinedText
protected java.util.Vector<java.awt.Shape>
selectedDrawingShapes
protected boolean
showOrientationsLeftSide
protected boolean
showSideAndViewAnnotationLeftSide
protected boolean
showZoomFactor
protected boolean
showZoomFactorLeftSide
protected java.awt.Color
sideAndViewAnnotationColor
protected java.awt.Font
sideAndViewAnnotationFont
protected java.lang.String
sideAndViewAnnotationString
protected int
sideAndViewAnnotationVerticalOffset
protected java.util.Vector<SuperimposedImage>
superimposedImages
protected java.lang.String
typeOfPixelSpacing
protected boolean
useVOILUTNotFunction
whether or not to use the supplied VOI LUT, rather than a linear or sigmoid window functionprotected int
voiLUTBitsPerEntry
the currently selected VOI LUT bits per entryprotected short[]
voiLUTData
the currently selected VOI LUT Dataprotected int
voiLUTEntryMax
the currently selected VOI LUT maximum entry valueprotected int
voiLUTEntryMin
the currently selected VOI LUT minimum entry valueprotected int
voiLUTFirstValueMapped
the currently selected VOI LUT first value mappedprotected double
voiLUTIdentityWindowCenter
the currently selected VOI LUT window center value that will result in the application of the VOI LUT rescaling the input (index) valuesprotected double
voiLUTIdentityWindowWidth
the currently selected VOI LUT window width value that will result in the application of the VOI LUT rescaling the input (index) valuesprotected int
voiLUTNumberOfEntries
the currently selected VOI LUT number of entriesprotected int
voiLUTTopOfEntryRange
the currently selected VOI LUT top of entry range (which may be less than (2^voiLUTNumberOfEntries)-1, e.g., in buggy Agfa images)protected java.util.Vector<java.awt.Shape>
volumeLocalizationShapes
protected double
windowCenter
the currently selected, default or user modified window centerprotected double
windowWidth
the currently selected, default or user modified window width-
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 SingleImagePanel(SourceImage sImg)
SingleImagePanel(SourceImage sImg, EventContext typeOfPanelEventContext)
SingleImagePanel(SourceImage sImg, EventContext typeOfPanelEventContext, int[] sortOrder, java.util.Vector preDefinedShapes, java.util.Vector preDefinedText, GeometryOfVolume imageGeometry)
SingleImagePanel(SourceImage sImg, EventContext typeOfPanelEventContext, GeometryOfVolume imageGeometry)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.awt.image.BufferedImage
applyVOILUT(java.awt.image.BufferedImage src, double center, double width, double identityCenter, double identityWidth, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit, int numberOfEntries, int firstValueMapped, int bitsPerEntry, short[] grayTable, int entryMin, int entryMax, int topOfEntryRange)
static java.awt.image.BufferedImage
applyWindowCenterAndWidthLinear(java.awt.image.BufferedImage src, double center, double width, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit)
static java.awt.image.BufferedImage
applyWindowCenterAndWidthLinear(java.awt.image.BufferedImage src, double center, double width, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit, boolean useExactCalculationInsteadOfDICOMStandardMethod)
static java.awt.image.BufferedImage
applyWindowCenterAndWidthLinearToColorImage(java.awt.image.BufferedImage src, double center, double width)
static java.awt.image.BufferedImage
applyWindowCenterAndWidthLogistic(java.awt.image.BufferedImage src, double center, double width, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit)
static java.awt.image.BufferedImage
applyWindowCenterAndWidthWithPaletteColor(java.awt.image.BufferedImage src, double center, double width, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit, int largestGray, int bitsPerEntry, int numberOfEntries, short[] redTable, short[] greenTable, short[] blueTable)
void
deconstruct()
static void
deconstructAllSingleImagePanelsInContainer(java.awt.Container container)
void
dirty()
void
dirty(SourceImage sImg)
void
dirtyPanned()
void
dirtySource()
void
dirtySource(SourceImage sImg)
void
dirtyWindowing()
void
displayReset()
void
displaySelectedMagnificationRatio(double ratio)
protected void
establishInitialWindowOrVOILUT()
protected void
establishStatisticalWindow()
protected void
finalize()
protected java.awt.geom.Point2D
getImageCoordinateFromWindowCoordinate(double xw, double yw)
Get location on source image from window relative location.GeometryOfVolume
getImageGeometry()
Get the geometry of the frames currently loaded in the single image panel.java.util.Vector
getPersistentDrawingShapes()
Get the unselected region shapes to to be displayed on the currently selected and displayed frame.java.util.Vector
getSelectedDrawingShapes()
Get the selected region shapes to to be displayed on the currently selected and displayed frame.protected int
getSourceImageHeight()
protected int
getSourceImageWidth()
java.util.Vector<SuperimposedImage>
getSuperimposedImages()
Get the superimposed images to to be displayed on the appropriate frames.void
keyPressed(java.awt.event.KeyEvent e)
void
keyReleased(java.awt.event.KeyEvent e)
void
keyTyped(java.awt.event.KeyEvent e)
static void
main(java.lang.String[] arg)
void
mouseClicked(java.awt.event.MouseEvent e)
void
mouseDragged(java.awt.event.MouseEvent e)
void
mouseEntered(java.awt.event.MouseEvent e)
void
mouseExited(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
mouseWheelMoved(java.awt.event.MouseWheelEvent e)
void
paintComponent(java.awt.Graphics g)
void
setApplyShutter(boolean applyShutter)
Set whether or not to apply shutter.void
setDemographicAndTechniqueAnnotations(DemographicAndTechniqueAnnotations demographicAndTechniqueAnnotations, java.lang.String demographicAndTechniqueFontName, int demographicAndTechniqueFontStyle, int demographicAndTechniqueFontSize, java.awt.Color demographicAndTechniqueColor)
Set annotative attribute values to be displayed on the currently selected and displayed frame at defined positions.void
setDisplayedAreaSelection(DisplayedAreaSelection displayedAreaSelection)
Select the sub-region of the image to display.void
setLocalizerShapes(java.util.Vector shapes)
Set the shapes of any localizer postings to be displayed on the currently selected and displayed frame.void
setOrientationAnnotations(com.pixelmed.display.OrientationAnnotations orientationAnnotations, java.lang.String orientationFontName, int orientationFontStyle, int orientationFontSize, java.awt.Color orientationColor)
Set orientation values to be displayed on the currently selected and displayed frame.void
setOrientationAnnotations(com.pixelmed.display.OrientationAnnotations orientationAnnotations, java.lang.String orientationFontName, int orientationFontStyle, int orientationFontSize, java.awt.Color orientationColor, boolean leftSide)
Set orientation values to be displayed on the currently selected and displayed frame.void
setPerFrameDrawingShapes(java.util.Vector<java.awt.Shape>[] arrayOfShapes)
Set the array of per-frame shapes to be displayed on the respective frame when it is selected and displayed.void
setPersistentDrawingShapes(java.util.Vector shapes)
Set the unselected region shapes to to be displayed on the currently selected and displayed frame.void
setPixelSpacingInSourceImage(double pixelSpacingInSourceImage)
Set pixel spacing in source image.void
setPixelSpacingInSourceImage(double pixelSpacingInSourceImage, java.lang.String typeOfPixelSpacing)
Set pixel spacing in source image.void
setPreDefinedShapes(java.util.Vector shapes)
Set the predefined shapes to to be displayed on the currently selected and displayed frame.void
setPreTransformImageRelativeCoordinates(java.awt.geom.AffineTransform transform)
Select the AffineTransform to apply to image-relative coordinates.void
setSelectedDrawingShapes(java.util.Vector shapes)
Set the selected region shapes to to be displayed on the currently selected and displayed frame.void
setShowOverlays(boolean showOverlays)
Set whether or not to show graphics such as overlays.void
setShowSuperimposedImages(boolean showSuperimposedImages)
Set whether or not to show superimposed images.void
setShowZoomFactor(boolean showZoomFactor, boolean leftSide, double pixelSpacingInSourceImage)
Select whether or not to annotate displayed image with zoom factor.void
setShowZoomFactor(boolean showZoomFactor, boolean leftSide, double pixelSpacingInSourceImage, java.lang.String typeOfPixelSpacing)
Select whether or not to annotate displayed image with zoom factor.void
setSideAndViewAnnotationString(java.lang.String annotationString, int verticalOffset, java.lang.String annotationFontName, int annotationFontStyle, int annotationFontSize, java.awt.Color annotationColor, boolean leftSide)
Set side and view annotation string.void
setSuperimposedImages(java.util.Vector<SuperimposedImage> superimposedImages)
Set the superimposed images to to be displayed on the appropriate frames.void
setVOIFunctionToLinear()
Set the VOI function to the (default) window center/width linear transformation.void
setVOIFunctionToLogistic()
Set the VOI function to a non-linear transformation using a logistic (sigmoid) curve with window center and width as parameters.void
setVolumeLocalizationShapes(java.util.Vector shapes)
Set the shapes of any volume localization postings to be displayed on the currently selected and displayed frame.void
setWindowingAccelerationValue(double value)
Set the windowing acceleration value to use.void
setWindowLinearCalculationToDicom()
Set the VOI linear function to use the DICOM offset window center/width linear transformation when applying to rescaled pixels.void
setWindowLinearCalculationToExact()
Set the VOI linear function to use the exact window center/width linear transformation when applying to rescaled pixels.void
updateStatusBarValues(int x, int y)
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, 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, getMinimumSize, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, 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, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, list, list, paintComponents, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, 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, hasFocus, imageUpdate, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, list, list, list, paintAll, 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, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
activeSuperimposedImagesAppliedToUnderlyingImage
protected java.util.Set<SuperimposedImage.AppliedToUnderlyingImage> activeSuperimposedImagesAppliedToUnderlyingImage
-
useVOILUTNotFunction
protected boolean useVOILUTNotFunction
whether or not to use the supplied VOI LUT, rather than a linear or sigmoid window function
-
windowCenter
protected double windowCenter
the currently selected, default or user modified window center
-
windowWidth
protected double windowWidth
the currently selected, default or user modified window width
-
voiLUTIdentityWindowWidth
protected double voiLUTIdentityWindowWidth
the currently selected VOI LUT window width value that will result in the application of the VOI LUT rescaling the input (index) values
-
voiLUTIdentityWindowCenter
protected double voiLUTIdentityWindowCenter
the currently selected VOI LUT window center value that will result in the application of the VOI LUT rescaling the input (index) values
-
voiLUTNumberOfEntries
protected int voiLUTNumberOfEntries
the currently selected VOI LUT number of entries
-
voiLUTFirstValueMapped
protected int voiLUTFirstValueMapped
the currently selected VOI LUT first value mapped
-
voiLUTBitsPerEntry
protected int voiLUTBitsPerEntry
the currently selected VOI LUT bits per entry
-
voiLUTData
protected short[] voiLUTData
the currently selected VOI LUT Data
-
voiLUTEntryMin
protected int voiLUTEntryMin
the currently selected VOI LUT minimum entry value
-
voiLUTEntryMax
protected int voiLUTEntryMax
the currently selected VOI LUT maximum entry value
-
voiLUTTopOfEntryRange
protected int voiLUTTopOfEntryRange
the currently selected VOI LUT top of entry range (which may be less than (2^voiLUTNumberOfEntries)-1, e.g., in buggy Agfa images)
-
imageGeometry
protected GeometryOfVolume imageGeometry
-
preDefinedShapes
protected java.util.Vector<java.awt.Shape> preDefinedShapes
-
preDefinedText
protected java.util.Vector<java.awt.Shape> preDefinedText
-
localizerShapes
protected java.util.Vector<java.awt.Shape> localizerShapes
-
volumeLocalizationShapes
protected java.util.Vector<java.awt.Shape> volumeLocalizationShapes
-
interactiveDrawingShapes
protected java.util.Vector<java.awt.Shape> interactiveDrawingShapes
-
persistentDrawingShapes
protected java.util.Vector<java.awt.Shape> persistentDrawingShapes
-
selectedDrawingShapes
protected java.util.Vector<java.awt.Shape> selectedDrawingShapes
-
persistentDrawingText
protected java.util.Vector<com.pixelmed.display.TextAnnotation> persistentDrawingText
-
perFrameDrawingShapes
protected java.util.Vector<java.awt.Shape>[] perFrameDrawingShapes
-
superimposedImages
protected java.util.Vector<SuperimposedImage> superimposedImages
-
orientationAnnotations
protected com.pixelmed.display.OrientationAnnotations orientationAnnotations
-
orientationColor
protected java.awt.Color orientationColor
-
orientationFont
protected java.awt.Font orientationFont
-
showOrientationsLeftSide
protected boolean showOrientationsLeftSide
-
sideAndViewAnnotationString
protected java.lang.String sideAndViewAnnotationString
-
sideAndViewAnnotationVerticalOffset
protected int sideAndViewAnnotationVerticalOffset
-
sideAndViewAnnotationColor
protected java.awt.Color sideAndViewAnnotationColor
-
sideAndViewAnnotationFont
protected java.awt.Font sideAndViewAnnotationFont
-
showSideAndViewAnnotationLeftSide
protected boolean showSideAndViewAnnotationLeftSide
-
originalDisplayedAreaSelection
protected DisplayedAreaSelection originalDisplayedAreaSelection
-
showZoomFactor
protected boolean showZoomFactor
-
showZoomFactorLeftSide
protected boolean showZoomFactorLeftSide
-
pixelSpacingInSourceImage
protected double pixelSpacingInSourceImage
-
typeOfPixelSpacing
protected java.lang.String typeOfPixelSpacing
-
leftMouseMode
protected SingleImagePanel.LeftMouseMode leftMouseMode
-
currentLocationIn3DSpace
protected double[] currentLocationIn3DSpace
This value is outside mouseMoved() only so that it doesn't need to be constantly reallocated - it is not used by any other method
-
-
Constructor Detail
-
SingleImagePanel
public SingleImagePanel(SourceImage sImg, EventContext typeOfPanelEventContext, int[] sortOrder, java.util.Vector preDefinedShapes, java.util.Vector preDefinedText, GeometryOfVolume imageGeometry)
- Parameters:
sImg
-typeOfPanelEventContext
-sortOrder
-preDefinedShapes
-preDefinedText
-imageGeometry
-
-
SingleImagePanel
public SingleImagePanel(SourceImage sImg, EventContext typeOfPanelEventContext, GeometryOfVolume imageGeometry)
- Parameters:
sImg
-typeOfPanelEventContext
-imageGeometry
-
-
SingleImagePanel
public SingleImagePanel(SourceImage sImg, EventContext typeOfPanelEventContext)
- Parameters:
sImg
-typeOfPanelEventContext
-
-
SingleImagePanel
public SingleImagePanel(SourceImage sImg)
- Parameters:
sImg
-
-
-
Method Detail
-
dirty
public void dirty()
-
dirtySource
public void dirtySource()
-
dirty
public void dirty(SourceImage sImg)
-
dirtySource
public void dirtySource(SourceImage sImg)
-
dirtyWindowing
public void dirtyWindowing()
-
dirtyPanned
public void dirtyPanned()
-
getImageGeometry
public GeometryOfVolume getImageGeometry()
Get the geometry of the frames currently loaded in the single image panel.
- Returns:
- the geometry of the frames
-
setPreDefinedShapes
public final void setPreDefinedShapes(java.util.Vector shapes)
Set the predefined shapes to to be displayed on the currently selected and displayed frame.
- Parameters:
shapes
- ajava.util.Vector
ofjava.awt.Shape
, may be null or empty
-
setLocalizerShapes
public final void setLocalizerShapes(java.util.Vector shapes)
Set the shapes of any localizer postings to be displayed on the currently selected and displayed frame.
- Parameters:
shapes
- ajava.util.Vector
ofjava.awt.Shape
, may be null or empty
-
setVolumeLocalizationShapes
public final void setVolumeLocalizationShapes(java.util.Vector shapes)
Set the shapes of any volume localization postings to be displayed on the currently selected and displayed frame.
- Parameters:
shapes
- ajava.util.Vector
ofjava.awt.Shape
, may be null or empty
-
setPersistentDrawingShapes
public final void setPersistentDrawingShapes(java.util.Vector shapes)
Set the unselected region shapes to to be displayed on the currently selected and displayed frame.
- Parameters:
shapes
- ajava.util.Vector
ofjava.awt.Shape
, may be null or empty
-
getPersistentDrawingShapes
public final java.util.Vector getPersistentDrawingShapes()
Get the unselected region shapes to to be displayed on the currently selected and displayed frame.
- Returns:
- a
java.util.Vector
ofjava.awt.Shape
, may be null or empty
-
setSelectedDrawingShapes
public final void setSelectedDrawingShapes(java.util.Vector shapes)
Set the selected region shapes to to be displayed on the currently selected and displayed frame.
- Parameters:
shapes
- ajava.util.Vector
ofjava.awt.Shape
, may be null or empty
-
getSelectedDrawingShapes
public final java.util.Vector getSelectedDrawingShapes()
Get the selected region shapes to to be displayed on the currently selected and displayed frame.
- Returns:
- a
java.util.Vector
ofjava.awt.Shape
, may be null or empty
-
setPerFrameDrawingShapes
public final void setPerFrameDrawingShapes(java.util.Vector<java.awt.Shape>[] arrayOfShapes)
Set the array of per-frame shapes to be displayed on the respective frame when it is selected and displayed.
- Parameters:
arrayOfShapes
- an array ofjava.util.Vector
ofjava.awt.Shape
-
setSuperimposedImages
public final void setSuperimposedImages(java.util.Vector<SuperimposedImage> superimposedImages)
Set the superimposed images to to be displayed on the appropriate frames.
- Parameters:
superimposedImages
- ajava.util.Vector
ofcom.pixelmed.display.SuperimposedImage
, may be null or empty
-
getSuperimposedImages
public final java.util.Vector<SuperimposedImage> getSuperimposedImages()
Get the superimposed images to to be displayed on the appropriate frames.
- Returns:
- a
java.util.Vector
ofcom.pixelmed.display.SuperimposedImage
, may be null or empty
-
setDemographicAndTechniqueAnnotations
public final void setDemographicAndTechniqueAnnotations(DemographicAndTechniqueAnnotations demographicAndTechniqueAnnotations, java.lang.String demographicAndTechniqueFontName, int demographicAndTechniqueFontStyle, int demographicAndTechniqueFontSize, java.awt.Color demographicAndTechniqueColor)
Set annotative attribute values to be displayed on the currently selected and displayed frame at defined positions.
- Parameters:
demographicAndTechniqueAnnotations
- the set of annotations, indexed per framedemographicAndTechniqueFontName
- the name of the font, e.g. "SansSerif"demographicAndTechniqueFontStyle
- the style of the font, e.g. Font.PLAINdemographicAndTechniqueFontSize
- the size of the font in points, e.g. 10demographicAndTechniqueColor
- the color to draw, e.g. Color.pink
-
setOrientationAnnotations
public final void setOrientationAnnotations(com.pixelmed.display.OrientationAnnotations orientationAnnotations, java.lang.String orientationFontName, int orientationFontStyle, int orientationFontSize, java.awt.Color orientationColor)
Set orientation values to be displayed on the currently selected and displayed frame.
- Parameters:
orientationAnnotations
- the set of orientations, indexed per frameorientationFontName
- the name of the font, e.g. "SansSerif"orientationFontStyle
- the style of the font, e.g. Font.PLAINorientationFontSize
- the size of the font in points, e.g. 20orientationColor
- the color to draw, e.g. Color.pink
-
setOrientationAnnotations
public final void setOrientationAnnotations(com.pixelmed.display.OrientationAnnotations orientationAnnotations, java.lang.String orientationFontName, int orientationFontStyle, int orientationFontSize, java.awt.Color orientationColor, boolean leftSide)
Set orientation values to be displayed on the currently selected and displayed frame.
- Parameters:
orientationAnnotations
- the set of orientations, indexed per frameorientationFontName
- the name of the font, e.g. "SansSerif"orientationFontStyle
- the style of the font, e.g. Font.PLAINorientationFontSize
- the size of the font in points, e.g. 20orientationColor
- the color to draw, e.g. Color.pinkleftSide
- show row orientation on left (true) or right (false) side of view port
-
setSideAndViewAnnotationString
public final void setSideAndViewAnnotationString(java.lang.String annotationString, int verticalOffset, java.lang.String annotationFontName, int annotationFontStyle, int annotationFontSize, java.awt.Color annotationColor, boolean leftSide)
Set side and view annotation string.
- Parameters:
annotationString
- additional side (image laterality) and view (e.g., mammo CC) string to show on same sideverticalOffset
-annotationFontName
- the name of the font, e.g. "SansSerif"annotationFontStyle
- the style of the font, e.g. Font.PLAINannotationFontSize
- the size of the font in points, e.g. 20annotationColor
- the color to draw, e.g. Color.pinkleftSide
- show row orientation on left (true) or right (false) side of view port
-
setDisplayedAreaSelection
public final void setDisplayedAreaSelection(DisplayedAreaSelection displayedAreaSelection)
Select the sub-region of the image to display.
- Parameters:
displayedAreaSelection
- the selection, or null to reset to using the entire image
-
displayReset
public void displayReset()
-
displaySelectedMagnificationRatio
public void displaySelectedMagnificationRatio(double ratio)
-
setPreTransformImageRelativeCoordinates
public final void setPreTransformImageRelativeCoordinates(java.awt.geom.AffineTransform transform)
Select the AffineTransform to apply to image-relative coordinates.
Used in cases where the supplied image has already been flipped or rotated but the coordinates relative to the original image have not.
- Parameters:
transform
- the transform, or null to reset to no transform
-
setShowZoomFactor
public final void setShowZoomFactor(boolean showZoomFactor, boolean leftSide, double pixelSpacingInSourceImage)
Select whether or not to annotate displayed image with zoom factor.
Uses same font parameters as set for orientation annotations.
Also implicitly effects setPixelSpacingInSourceImage().
- Parameters:
showZoomFactor
- true or false to activate annotation of zoom factorleftSide
- show zoom factor on left (true) or right (false) side of view portpixelSpacingInSourceImage
- a single value that is the (square) row and column pixel spacing, or 0 if not known
-
setShowZoomFactor
public final void setShowZoomFactor(boolean showZoomFactor, boolean leftSide, double pixelSpacingInSourceImage, java.lang.String typeOfPixelSpacing)
Select whether or not to annotate displayed image with zoom factor.
Uses same font parameters as set for orientation annotations.
Also implicitly effects setPixelSpacingInSourceImage().
- Parameters:
showZoomFactor
- true or false to activate annotation of zoom factorleftSide
- show zoom factor on left (true) or right (false) side of view portpixelSpacingInSourceImage
- a single value that is the (square) row and column pixel spacing, or 0 if not knowntypeOfPixelSpacing
- a String that describes the type of pixel spacing (e.g., detector plane, calibrated, accounting for geometric magnification, etc.), or null if not to be described when making measurements
-
setPixelSpacingInSourceImage
public final void setPixelSpacingInSourceImage(double pixelSpacingInSourceImage)
Set pixel spacing in source image.
Used for displaying zoom factor and making measurements, therefore should be appropriate choice of Pixel Spacing or Imager Pixel Spacing (appropriately corrected for radiographic magnification factor, if any), etc.
- Parameters:
pixelSpacingInSourceImage
- a single value that is the (square) row and column pixel spacing, or 0 if not known
-
setPixelSpacingInSourceImage
public final void setPixelSpacingInSourceImage(double pixelSpacingInSourceImage, java.lang.String typeOfPixelSpacing)
Set pixel spacing in source image.
Used for displaying zoom factor and making measurements, therefore should be appropriate choice of Pixel Spacing or Imager Pixel Spacing (appropriately corrected for radiographic magnification factor, if any), etc.
- Parameters:
pixelSpacingInSourceImage
- a single value that is the (square) row and column pixel spacing, or 0 if not knowntypeOfPixelSpacing
- a String that describes the type of pixel spacing (e.g., detector plane, calibrated, accounting for geometric magnification, etc.), or null if not to be described when making measurements
-
setVOIFunctionToLinear
public final void setVOIFunctionToLinear()
Set the VOI function to the (default) window center/width linear transformation.
-
setVOIFunctionToLogistic
public final void setVOIFunctionToLogistic()
Set the VOI function to a non-linear transformation using a logistic (sigmoid) curve with window center and width as parameters.
-
setWindowLinearCalculationToExact
public final void setWindowLinearCalculationToExact()
Set the VOI linear function to use the exact window center/width linear transformation when applying to rescaled pixels.
-
setWindowLinearCalculationToDicom
public final void setWindowLinearCalculationToDicom()
Set the VOI linear function to use the DICOM offset window center/width linear transformation when applying to rescaled pixels.
The DICOM offset subtracts 0.5 from the window center and subtracts 1.0 from the window width before applying to rescaled pixels.
-
setWindowingAccelerationValue
public final void setWindowingAccelerationValue(double value)
Set the windowing acceleration value to use.
-
setShowOverlays
public final void setShowOverlays(boolean showOverlays)
Set whether or not to show graphics such as overlays.
-
setApplyShutter
public final void setApplyShutter(boolean applyShutter)
Set whether or not to apply shutter.
-
setShowSuperimposedImages
public final void setShowSuperimposedImages(boolean showSuperimposedImages)
Set whether or not to show superimposed images.
-
keyPressed
public void keyPressed(java.awt.event.KeyEvent e)
- Specified by:
keyPressed
in interfacejava.awt.event.KeyListener
- Parameters:
e
-
-
keyReleased
public void keyReleased(java.awt.event.KeyEvent e)
- Specified by:
keyReleased
in interfacejava.awt.event.KeyListener
- Parameters:
e
-
-
keyTyped
public void keyTyped(java.awt.event.KeyEvent e)
- Specified by:
keyTyped
in interfacejava.awt.event.KeyListener
- Parameters:
e
-
-
mouseWheelMoved
public void mouseWheelMoved(java.awt.event.MouseWheelEvent e)
- Specified by:
mouseWheelMoved
in interfacejava.awt.event.MouseWheelListener
- Parameters:
e
-
-
mouseClicked
public void mouseClicked(java.awt.event.MouseEvent e)
- Specified by:
mouseClicked
in interfacejava.awt.event.MouseListener
- Parameters:
e
-
-
mouseEntered
public void mouseEntered(java.awt.event.MouseEvent e)
- Specified by:
mouseEntered
in interfacejava.awt.event.MouseListener
- Parameters:
e
-
-
mouseExited
public void mouseExited(java.awt.event.MouseEvent e)
- Specified by:
mouseExited
in interfacejava.awt.event.MouseListener
- Parameters:
e
-
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent e)
- Specified by:
mouseDragged
in interfacejava.awt.event.MouseMotionListener
- Parameters:
e
-
-
getSourceImageHeight
protected int getSourceImageHeight()
-
getSourceImageWidth
protected int getSourceImageWidth()
-
getImageCoordinateFromWindowCoordinate
protected java.awt.geom.Point2D getImageCoordinateFromWindowCoordinate(double xw, double yw)
Get location on source image from window relative location.- Parameters:
xw
- x coordinate in AWT window as returned by MouseEvent.getX()yw
- y coordinate in AWT window as returned by MouseEvent.getY()- Returns:
- source image-relative coordinates with sub-pixel resolution clamped to image size but including BLHC of BLHC pixel (per DICOM PS 3.3 Figure C.10.5-1)
-
mouseMoved
public void mouseMoved(java.awt.event.MouseEvent e)
- Specified by:
mouseMoved
in interfacejava.awt.event.MouseMotionListener
- Parameters:
e
-
-
updateStatusBarValues
public void updateStatusBarValues(int x, int y)
- Parameters:
x
-y
-
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent e)
- Specified by:
mousePressed
in interfacejava.awt.event.MouseListener
- Parameters:
e
-
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent e)
- Specified by:
mouseReleased
in interfacejava.awt.event.MouseListener
- Parameters:
e
-
-
applyVOILUT
public static final java.awt.image.BufferedImage applyVOILUT(java.awt.image.BufferedImage src, double center, double width, double identityCenter, double identityWidth, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit, int numberOfEntries, int firstValueMapped, int bitsPerEntry, short[] grayTable, int entryMin, int entryMax, int topOfEntryRange)
- Parameters:
src
-center
-width
-identityCenter
-identityWidth
-signed
-inverted
-useSlope
-useIntercept
-hasPad
-pad
-padRangeLimit
-numberOfEntries
-bitsPerEntry
-grayTable
-entryMin
-entryMax
-topOfEntryRange
-
-
applyWindowCenterAndWidthLogistic
public static final java.awt.image.BufferedImage applyWindowCenterAndWidthLogistic(java.awt.image.BufferedImage src, double center, double width, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit)
- Parameters:
src
-center
-width
-signed
-inverted
-useSlope
-useIntercept
-hasPad
-pad
-padRangeLimit
-
-
applyWindowCenterAndWidthLinear
public static final java.awt.image.BufferedImage applyWindowCenterAndWidthLinear(java.awt.image.BufferedImage src, double center, double width, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit)
- Parameters:
src
-center
-width
-signed
-inverted
-useSlope
-useIntercept
-hasPad
-pad
-padRangeLimit
-
-
applyWindowCenterAndWidthLinear
public static final java.awt.image.BufferedImage applyWindowCenterAndWidthLinear(java.awt.image.BufferedImage src, double center, double width, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit, boolean useExactCalculationInsteadOfDICOMStandardMethod)
- Parameters:
src
-center
-width
-signed
-inverted
-useSlope
-useIntercept
-hasPad
-pad
-padRangeLimit
-useExactCalculationInsteadOfDICOMStandardMethod
-
-
applyWindowCenterAndWidthWithPaletteColor
public static final java.awt.image.BufferedImage applyWindowCenterAndWidthWithPaletteColor(java.awt.image.BufferedImage src, double center, double width, boolean signed, boolean inverted, double useSlope, double useIntercept, boolean hasPad, int pad, int padRangeLimit, int largestGray, int bitsPerEntry, int numberOfEntries, short[] redTable, short[] greenTable, short[] blueTable)
- Parameters:
src
-center
-width
-signed
-inverted
-useSlope
-useIntercept
-hasPad
-pad
-padRangeLimit
-largestGray
-bitsPerEntry
-numberOfEntries
-redTable
-greenTable
-blueTable
-
-
applyWindowCenterAndWidthLinearToColorImage
public static final java.awt.image.BufferedImage applyWindowCenterAndWidthLinearToColorImage(java.awt.image.BufferedImage src, double center, double width)
- Parameters:
src
-center
-width
-
-
establishStatisticalWindow
protected void establishStatisticalWindow()
-
establishInitialWindowOrVOILUT
protected void establishInitialWindowOrVOILUT()
-
deconstruct
public void deconstruct()
-
deconstructAllSingleImagePanelsInContainer
public static void deconstructAllSingleImagePanelsInContainer(java.awt.Container container)
-
finalize
protected void finalize() throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
paintComponent
public void paintComponent(java.awt.Graphics g)
- Overrides:
paintComponent
in classjavax.swing.JComponent
- Parameters:
g
-
-
main
public static void main(java.lang.String[] arg)
- Parameters:
arg
-
-
-