Package gov.nih.mipav.view.dialogs
Class JDialogThresholdRGB
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- java.awt.Window
-
- java.awt.Dialog
-
- javax.swing.JDialog
-
- gov.nih.mipav.view.dialogs.JDialogBase
-
- gov.nih.mipav.view.dialogs.JDialogScriptableBase
-
- gov.nih.mipav.view.dialogs.JDialogThresholdRGB
-
- All Implemented Interfaces:
AlgorithmInterface
,ScriptableActionInterface
,DialogDefaultsInterface
,java.awt.event.ActionListener
,java.awt.event.FocusListener
,java.awt.event.ItemListener
,java.awt.event.WindowListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
public class JDialogThresholdRGB extends JDialogScriptableBase implements AlgorithmInterface
Title: JDialogThresholdRGB
Description: dialog for running RGB threshold algorithm on color images
Copyright: Copyright (c) 2003
Company:
- Version:
- 1.0
- Author:
- linkb
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class gov.nih.mipav.view.dialogs.JDialogBase
JDialogBase.CancelAction, JDialogBase.HelpAction, JDialogBase.OKAction
-
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
-
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
-
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
-
-
Field Summary
Fields Modifier and Type Field Description private javax.swing.JCheckBox
applyToAllBox
false = apply algorithm only to VOI regions apply same threshold to all.private javax.swing.JCheckBox
applyToBlueBox
enable blue threshold.private javax.swing.JCheckBox
applyToGreenBox
enable green threshold.private javax.swing.JCheckBox
applyToRedBox
enable red threshold.private int
displayLoc
DOCUMENT ME!private float[]
fillValues
DOCUMENT ME!private ModelImage
image
DOCUMENT ME!private javax.swing.JCheckBox
inverseOptionBox
choose inverse or no inverse threshold.private boolean
isInverse
inverse?private float[]
maxs
DOCUMENT ME!private float[]
mins
Minimum and maximum values for red/gree/blue.private javax.swing.JRadioButton
newImage
DOCUMENT ME!private boolean
regionFlag
or if the source image is to be replaced.private javax.swing.JRadioButton
replaceImage
DOCUMENT ME!private ModelImage
resultImage
DOCUMENT ME!private static long
serialVersionUID
Use serialVersionUID for interoperability.private javax.swing.JTextField[]
textFills
DOCUMENT ME!private javax.swing.JTextField[]
textThreshold1
Text fields for lower & upper thresholds and fill values.private javax.swing.JTextField[]
textThreshold2
DOCUMENT ME!private AlgorithmThresholdDualRGB
thresholdAlgoRGB
DOCUMENT ME!private float[]
thresholdB
DOCUMENT ME!private float[]
thresholdG
DOCUMENT ME!private javax.swing.JLabel[]
thresholdLabels1
DOCUMENT ME!private javax.swing.JLabel[]
thresholdLabels2
DOCUMENT ME!private float[]
thresholdR
lower [0] and upper [1] thresholds for RGB.private java.lang.String[]
titles
DOCUMENT ME!private boolean[]
useChannel
tells whether or not to use the channels (red=0, green=1, blue=2).private ViewUserInterface
userInterface
DOCUMENT ME!private javax.swing.JRadioButton
VOIRegions
DOCUMENT ME!private javax.swing.JRadioButton
wholeImage
DOCUMENT ME!-
Fields inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBase
displayInNewFrame, isComplete, scriptParameters
-
Fields inherited from class gov.nih.mipav.view.dialogs.JDialogBase
applyButton, bar, cancelButton, cancelFlag, closeButton, HELP, helpButton, mainDialogPanel, NEW, OKButton, parentFrame, progressBar, REPLACE, runInSeparateThread, runningScriptFlag, runQuiet, serif12, serif12B, voiManager
-
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
-
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description JDialogThresholdRGB()
Empty constructor needed for dynamic instantiation (used during scripting).JDialogThresholdRGB(ModelImage im)
Used primarily for the script to store variables and run the algorithm.JDialogThresholdRGB(java.awt.Frame theParentFrame, ModelImage im)
Creates a new JDialogThresholdRGB object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(java.awt.event.ActionEvent event)
Closes dialog box when the OK button is pressed and calls the algorithm.void
algorithmPerformed(AlgorithmBase algorithm)
This method is required if the AlgorithmPerformed interface is implemented.private javax.swing.JPanel
buildThresholdPanel(int panelNum)
Builds each threshold panel (red, green, and blue).protected void
callAlgorithm()
Once all the necessary variables are set, call the threshold rgb algorithm based on what type of image this is and whether or not there is a separate destination image.protected void
doPostAlgorithmActions()
Used to perform actions after the execution of the algorithm is completed (e.g., put the result image in the image table).void
focusLost(java.awt.event.FocusEvent event)
When the user clicks the mouse out of a text field, resets the necessary variables.ModelImage
getResultImage()
Accessor that returns the image.private void
init()
Sets up the GUI (panels, buttons, etc) and displays it on the screen.void
itemStateChanged(java.awt.event.ItemEvent event)
Monitors the checkboxes and handles events according (enable/disable).void
runFromLUTFrame(ModelImage im, float[] red, float[] green, float[] blue, float[] fillV, boolean isInverse)
Function to run the threshold algorithm from the ViewJFrameHistoRGB.void
setDisplayLocNew()
Accessor that sets the display loc variable to new, so that a new image is created once the algorithm completes.void
setDisplayLocReplace()
Accessor that sets the display loc variable to replace, so the current image is replaced once the algorithm completes.void
setFillValues(float[] scale)
Accessor that sets the fill value.protected void
setGUIFromParams()
Set the dialog GUI using the script parameters while running this algorithm as part of a script.void
setRegionFlag(boolean flag)
Accessor that sets the region flag.void
setThresholdB(float[] thresB)
Sets the blue threshold.void
setThresholdG(float[] thresG)
Sets the green threshold.void
setThresholdR(float[] thresR)
Sets the red threshold (float[2]... 1st is lower, 2nd is upper)private boolean
setVariables()
Use the GUI results to set up the variables needed to run the algorithm.protected void
storeParamsFromGUI()
Record the parameters just used to run this algorithm in a script.-
Methods inherited from class gov.nih.mipav.view.dialogs.JDialogScriptableBase
getDialogActionString, insertScriptLine, isComplete, scriptRun, setComplete
-
Methods inherited from class gov.nih.mipav.view.dialogs.JDialogBase
buildApplyButton, buildButtons, buildCancelButton, buildCancelButton, buildCloseButton, buildHelpButton, buildImageComboBox, buildOKButton, buildOKButton, buildOKCancelButtons, buildTitledBorder, buildTitledBorder, createLabel, createProgressBar, createProgressBar, createTextField, focusGained, getDialogName, isCancelled, isQuietRunning, isRunInSeparateThread, isScriptRunning, loadDefaults, loadDefaults, makeImageName, makeString, openNewFrame, saveDefaults, saveDefaults, setLeftHandSystem, setQuietRunning, setScriptRunning, setSeparateThread, setVisible, setVisible, setVisibleMenuBar, setVisibleStandard, setVOIManager, setWCSystem, testParameter, testParameterMin, updateFFTFileInfo, updateFileInfo, updateFileInfoOtherModality, updateFileInfoStatic, updateFileInfoStatic, updateFileTypeInfo, updateFileTypeInfo, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
-
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
-
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBack
-
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFront
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Use serialVersionUID for interoperability.- See Also:
- Constant Field Values
-
applyToAllBox
private javax.swing.JCheckBox applyToAllBox
false = apply algorithm only to VOI regions apply same threshold to all.
-
applyToBlueBox
private javax.swing.JCheckBox applyToBlueBox
enable blue threshold.
-
applyToGreenBox
private javax.swing.JCheckBox applyToGreenBox
enable green threshold.
-
applyToRedBox
private javax.swing.JCheckBox applyToRedBox
enable red threshold.
-
displayLoc
private int displayLoc
DOCUMENT ME!
-
fillValues
private float[] fillValues
DOCUMENT ME!
-
image
private ModelImage image
DOCUMENT ME!
-
inverseOptionBox
private javax.swing.JCheckBox inverseOptionBox
choose inverse or no inverse threshold.
-
isInverse
private boolean isInverse
inverse?
-
maxs
private float[] maxs
DOCUMENT ME!
-
mins
private float[] mins
Minimum and maximum values for red/gree/blue.
-
newImage
private javax.swing.JRadioButton newImage
DOCUMENT ME!
-
regionFlag
private boolean regionFlag
or if the source image is to be replaced.
-
replaceImage
private javax.swing.JRadioButton replaceImage
DOCUMENT ME!
-
resultImage
private ModelImage resultImage
DOCUMENT ME!
-
textFills
private javax.swing.JTextField[] textFills
DOCUMENT ME!
-
textThreshold1
private javax.swing.JTextField[] textThreshold1
Text fields for lower & upper thresholds and fill values.
-
textThreshold2
private javax.swing.JTextField[] textThreshold2
DOCUMENT ME!
-
thresholdAlgoRGB
private AlgorithmThresholdDualRGB thresholdAlgoRGB
DOCUMENT ME!
-
thresholdB
private float[] thresholdB
DOCUMENT ME!
-
thresholdG
private float[] thresholdG
DOCUMENT ME!
-
thresholdLabels1
private javax.swing.JLabel[] thresholdLabels1
DOCUMENT ME!
-
thresholdLabels2
private javax.swing.JLabel[] thresholdLabels2
DOCUMENT ME!
-
thresholdR
private float[] thresholdR
lower [0] and upper [1] thresholds for RGB.
-
titles
private java.lang.String[] titles
DOCUMENT ME!
-
useChannel
private boolean[] useChannel
tells whether or not to use the channels (red=0, green=1, blue=2).
-
userInterface
private ViewUserInterface userInterface
DOCUMENT ME!
-
VOIRegions
private javax.swing.JRadioButton VOIRegions
DOCUMENT ME!
-
wholeImage
private javax.swing.JRadioButton wholeImage
DOCUMENT ME!
-
-
Constructor Detail
-
JDialogThresholdRGB
public JDialogThresholdRGB()
Empty constructor needed for dynamic instantiation (used during scripting).
-
JDialogThresholdRGB
public JDialogThresholdRGB(ModelImage im)
Used primarily for the script to store variables and run the algorithm. No actual dialog will appear but the set up info and result image will be stored here.- Parameters:
im
- Source image.
-
JDialogThresholdRGB
public JDialogThresholdRGB(java.awt.Frame theParentFrame, ModelImage im)
Creates a new JDialogThresholdRGB object.- Parameters:
theParentFrame
- Parent frame.im
- Source image.
-
-
Method Detail
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent event)
Closes dialog box when the OK button is pressed and calls the algorithm.- Specified by:
actionPerformed
in interfacejava.awt.event.ActionListener
- Overrides:
actionPerformed
in classJDialogBase
- Parameters:
event
- Event that triggers function.
-
algorithmPerformed
public void algorithmPerformed(AlgorithmBase algorithm)
This method is required if the AlgorithmPerformed interface is implemented. It is called by the algorithms when it has completed or failed to to complete, so that the dialog can be display the result image and/or clean up.- Specified by:
algorithmPerformed
in interfaceAlgorithmInterface
- Parameters:
algorithm
- Algorithm that caused the event.
-
focusLost
public void focusLost(java.awt.event.FocusEvent event)
When the user clicks the mouse out of a text field, resets the necessary variables. In this case, it also handles a bug involving when the focusGained and focusLost functions are called by turning off the ability of the text fields to call those functions.- Specified by:
focusLost
in interfacejava.awt.event.FocusListener
- Overrides:
focusLost
in classJDialogBase
- Parameters:
event
- Event that triggers this function.
-
getResultImage
public ModelImage getResultImage()
Accessor that returns the image.- Returns:
- The result image.
-
itemStateChanged
public void itemStateChanged(java.awt.event.ItemEvent event)
Monitors the checkboxes and handles events according (enable/disable).- Specified by:
itemStateChanged
in interfacejava.awt.event.ItemListener
- Overrides:
itemStateChanged
in classJDialogBase
- Parameters:
event
- ItemEvent
-
runFromLUTFrame
public void runFromLUTFrame(ModelImage im, float[] red, float[] green, float[] blue, float[] fillV, boolean isInverse)
Function to run the threshold algorithm from the ViewJFrameHistoRGB.- Parameters:
im
- ModelImage the imagered
- float[] red thresholdgreen
- float[] green thresholdblue
- float[] blue thresholdfillV
- float[] fill valuesisInverse
- boolean (inverse threshold or not)
-
setDisplayLocNew
public void setDisplayLocNew()
Accessor that sets the display loc variable to new, so that a new image is created once the algorithm completes.
-
setDisplayLocReplace
public void setDisplayLocReplace()
Accessor that sets the display loc variable to replace, so the current image is replaced once the algorithm completes.
-
setFillValues
public void setFillValues(float[] scale)
Accessor that sets the fill value. Will not be used if writing out a binary image.- Parameters:
scale
- Value to set fill value to.
-
setRegionFlag
public void setRegionFlag(boolean flag)
Accessor that sets the region flag.- Parameters:
flag
-true
indicates the whole image is blurred,false
indicates a region.
-
setThresholdB
public void setThresholdB(float[] thresB)
Sets the blue threshold.- Parameters:
thresB
- float[]
-
setThresholdG
public void setThresholdG(float[] thresG)
Sets the green threshold.- Parameters:
thresG
- float[]
-
setThresholdR
public void setThresholdR(float[] thresR)
Sets the red threshold (float[2]... 1st is lower, 2nd is upper)- Parameters:
thresR
- float[]
-
callAlgorithm
protected void callAlgorithm()
Once all the necessary variables are set, call the threshold rgb algorithm based on what type of image this is and whether or not there is a separate destination image.- Specified by:
callAlgorithm
in classJDialogScriptableBase
-
doPostAlgorithmActions
protected void doPostAlgorithmActions()
Used to perform actions after the execution of the algorithm is completed (e.g., put the result image in the image table). Defaults to no action, override to actually have it do something.- Overrides:
doPostAlgorithmActions
in classJDialogScriptableBase
-
setGUIFromParams
protected void setGUIFromParams()
Set the dialog GUI using the script parameters while running this algorithm as part of a script.- Specified by:
setGUIFromParams
in classJDialogScriptableBase
-
storeParamsFromGUI
protected void storeParamsFromGUI() throws ParserException
Record the parameters just used to run this algorithm in a script.- Specified by:
storeParamsFromGUI
in classJDialogScriptableBase
- Throws:
ParserException
- If there is a problem creating/recording the new parameters.
-
buildThresholdPanel
private javax.swing.JPanel buildThresholdPanel(int panelNum)
Builds each threshold panel (red, green, and blue).- Parameters:
panelNum
- int 0-2- Returns:
- JPanel
-
init
private void init()
Sets up the GUI (panels, buttons, etc) and displays it on the screen.
-
setVariables
private boolean setVariables()
Use the GUI results to set up the variables needed to run the algorithm.- Returns:
true
if parameters set successfully,false
otherwise.
-
-