Facemorph.psychomorph
Class DelineatorForm

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by Facemorph.psychomorph.DelineatorForm
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class DelineatorForm
extends javax.swing.JFrame

DelineatorForm holds main delineator / Transformer window

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int TYPE_CLM
          CLM selected for batch delineation
static int TYPE_ORASM
          ORASM selected for batch delineation
static int TYPE_PSM
          PSM selected for batch delineation
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
DelineatorForm(PsychoMorphForm morphApp)
          Creates new form DelineatorForm
 
Method Summary
 void addMenu(javax.swing.JMenu menu)
           
 void addPlugin(java.io.File sf)
           
static void batchProcess(Batchable batchable, java.lang.String append, java.awt.Component parent, javax.swing.JFileChooser jFileChooser1, java.io.File f, ImageZoomPanel izp)
          Batch processing method
static void batchProcess(Batchable batchable, java.lang.String append, java.awt.Component parent, javax.swing.JFileChooser jFileChooser1, ImageZoomPanel izp)
          Batch processing method
 void batchTransform()
          Batch transform method
static java.awt.image.BufferedImage checkBufferedImage(java.awt.Image img)
          Returns a BufferedImage from the Image, justs casts if possible
static java.lang.String checkFileName(java.lang.String file, java.io.File f)
          Convert a name read from a file into a full path name
static void drawMaskOnImage(java.awt.image.BufferedImage original, Template template, MaskInterface mask, java.awt.Color outside, int smooth, boolean invert)
          Draw the mask on the image
static void drawMaskOnImage(FloatImage[] original, Template template, MaskInterface mask, java.awt.Color outside, int smooth, boolean invert)
          Draw the mask on the image
 void flip(ImageZoomPanel izp, int[] plist)
          Flip an image horizontally with optional mirroring of the template
 ASM getASM()
           
 boolean getAutoLoadTemplateState()
          Get the auto load template state
 boolean getAutoSaveTemplateState()
          Get the auto save template state
 javax.swing.JCheckBoxMenuItem getColourCheckBoxMenuItem()
           
 javax.swing.JSlider getColourSlider()
          Get the colour slider
 FloatImageControl getFloatImageControl()
           
 java.util.Stack<java.awt.Image> getImageUndoStack()
           
 ImageZoomPanel getIZP()
          Get the ImageZoomPanel
 javax.swing.JCheckBox getLockCheckBox()
           
 boolean getMaskColour()
           
static java.awt.Color getMaskSettings(java.awt.Component parent, java.lang.Integer smooth, java.lang.Boolean invert)
           
 boolean getMatchColour()
           
 ORASM getORASM()
           
static java.util.ArrayList<java.lang.Integer> getPointList(java.lang.String ptStr, int maxSize)
           
 PSMNode getPSM()
           
 javax.swing.JCheckBoxMenuItem getShapeCheckBoxMenuItem()
           
 javax.swing.JSlider getShapeSlider()
          Get the shape slider
 java.util.Stack<Template> getTemplateUndoStack()
           
 javax.swing.JCheckBoxMenuItem getTextureOnOffMenuItem()
           
 javax.swing.JSlider getTextureSlider()
          Get the texture slider
 javax.swing.JMenuItem getTransformUndoMenuItem()
           
 int getWarpType()
          Get the type of warp selected (redirects to PsychoMorphForm.getWarpType()
 Template initialisePSM(java.awt.image.BufferedImage bimg, java.util.ArrayList<java.lang.Integer> pts, Template tem)
           
static void main(java.lang.String[] args)
           
 void removeMenu(javax.swing.JMenu menu)
           
 void removePlugin(java.lang.String file)
           
 void setAutoLoadTemplateState(boolean state)
          Set the auto load template state
 void setAutoSaveTemplateState(boolean state)
          Set the auto save template state
 void setImageUndoStack(java.util.Stack<java.awt.Image> imageUndoStack)
           
 void setImageZoomPanel(ImageZoomPanel izp)
          Sets the image-zoom-panel TODO: this is dangerous, need some method of reverting
 javax.swing.JFileChooser setUPMultiFileDialog(java.lang.String type, java.lang.String... exts)
          Adds the new types as an option the file dialog
static boolean writeImage(java.awt.Image img, java.io.File f, java.awt.Component parent, Template tem, boolean autoSaveTem)
          Write an image to file
static boolean writeImage(ImageZoomPanel izp, java.io.File f, java.awt.Component parent, Template tem, boolean autoSaveTem)
          Write an image to file
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, 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, transferFocusBackward, 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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, 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, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

TYPE_PSM

public static final int TYPE_PSM
PSM selected for batch delineation

See Also:
Constant Field Values

TYPE_ORASM

public static final int TYPE_ORASM
ORASM selected for batch delineation

See Also:
Constant Field Values

TYPE_CLM

public static final int TYPE_CLM
CLM selected for batch delineation

See Also:
Constant Field Values
Constructor Detail

DelineatorForm

public DelineatorForm(PsychoMorphForm morphApp)
Creates new form DelineatorForm

Parameters:
morphApp - the parent PsychomorphForm
Method Detail

getLockCheckBox

public javax.swing.JCheckBox getLockCheckBox()

getIZP

public ImageZoomPanel getIZP()
Get the ImageZoomPanel

Returns:
returns the IZP

setImageZoomPanel

public void setImageZoomPanel(ImageZoomPanel izp)
Sets the image-zoom-panel TODO: this is dangerous, need some method of reverting


getAutoLoadTemplateState

public boolean getAutoLoadTemplateState()
Get the auto load template state

Returns:
returns the auto load template state

getAutoSaveTemplateState

public boolean getAutoSaveTemplateState()
Get the auto save template state

Returns:
returns the auto save template state

setAutoLoadTemplateState

public void setAutoLoadTemplateState(boolean state)
Set the auto load template state

Parameters:
state - the auto load template state

setAutoSaveTemplateState

public void setAutoSaveTemplateState(boolean state)
Set the auto save template state

Parameters:
state - the auto save template state

getWarpType

public int getWarpType()
Get the type of warp selected (redirects to PsychoMorphForm.getWarpType()

Returns:
return the selcted warp type
See Also:
PsychoMorphForm.getWarpType()

batchProcess

public static void batchProcess(Batchable batchable,
                                java.lang.String append,
                                java.awt.Component parent,
                                javax.swing.JFileChooser jFileChooser1,
                                ImageZoomPanel izp)
Batch processing method

Parameters:
batchable - the Batchable to use
append - the string to append to output files
parent - the parent component
jFileChooser1 - the file chooser to use
izp - the ImageZoomPanel to batch on
writeTemplate - should Templates be written after processing
writeImage - should images be written after processing
readTemplate - should templates be read before processing

batchProcess

public static void batchProcess(Batchable batchable,
                                java.lang.String append,
                                java.awt.Component parent,
                                javax.swing.JFileChooser jFileChooser1,
                                java.io.File f,
                                ImageZoomPanel izp)
Batch processing method

Parameters:
batchable - the Batchable to use
append - the string to append to output files
parent - the parent component
jFileChooser1 - the file chooser to use
f - the file to read
izp - the ImageZoomPanel to batch on

writeImage

public static boolean writeImage(java.awt.Image img,
                                 java.io.File f,
                                 java.awt.Component parent,
                                 Template tem,
                                 boolean autoSaveTem)
Write an image to file

Parameters:
img - the image to write
f - the file to write it to
parent - the parent for displaying dialogs
tem - the template to )optionally) save
autoSaveTem - should the template be saved
Returns:
returns true on success, false otherwise

writeImage

public static boolean writeImage(ImageZoomPanel izp,
                                 java.io.File f,
                                 java.awt.Component parent,
                                 Template tem,
                                 boolean autoSaveTem)
Write an image to file

Parameters:
img - the image to write
f - the file to write it to
parent - the parent for displaying dialogs
tem - the template to )optionally) save
autoSaveTem - should the template be saved
Returns:
returns true on success, false otherwise

setUPMultiFileDialog

public javax.swing.JFileChooser setUPMultiFileDialog(java.lang.String type,
                                                     java.lang.String... exts)
Adds the new types as an option the file dialog

Parameters:
type - the type of files to load / save (e.g. Images)
exts - the file extentions supported
Returns:
returns a new JFileChooser

getImageUndoStack

public java.util.Stack<java.awt.Image> getImageUndoStack()
Returns:
the imageUndoStack

setImageUndoStack

public void setImageUndoStack(java.util.Stack<java.awt.Image> imageUndoStack)
Parameters:
imageUndoStack - the imageUndoStack to set

getTemplateUndoStack

public java.util.Stack<Template> getTemplateUndoStack()
Returns:
the templateUndoStack

getTransformUndoMenuItem

public javax.swing.JMenuItem getTransformUndoMenuItem()
Returns:
the transformUndoMenuItem

getColourCheckBoxMenuItem

public javax.swing.JCheckBoxMenuItem getColourCheckBoxMenuItem()
Returns:
the colourCheckBoxMenuItem

getShapeCheckBoxMenuItem

public javax.swing.JCheckBoxMenuItem getShapeCheckBoxMenuItem()
Returns:
the shapeCheckBoxMenuItem

getTextureOnOffMenuItem

public javax.swing.JCheckBoxMenuItem getTextureOnOffMenuItem()
Returns:
the textureOnOffMenuItem

getShapeSlider

public javax.swing.JSlider getShapeSlider()
Get the shape slider

Returns:
return the shape slider

getColourSlider

public javax.swing.JSlider getColourSlider()
Get the colour slider

Returns:
return the colour slider

getTextureSlider

public javax.swing.JSlider getTextureSlider()
Get the texture slider

Returns:
return the texture slider

getMatchColour

public boolean getMatchColour()

getMaskColour

public boolean getMaskColour()

getFloatImageControl

public FloatImageControl getFloatImageControl()

batchTransform

public void batchTransform()
Batch transform method


checkFileName

public static java.lang.String checkFileName(java.lang.String file,
                                             java.io.File f)
Convert a name read from a file into a full path name

Parameters:
file - the raw name of the file, with or without quotes and not the full path
f - a file in the same folder as file
Returns:
returns the name of the file with the full path name added and quotes removed

getMaskSettings

public static java.awt.Color getMaskSettings(java.awt.Component parent,
                                             java.lang.Integer smooth,
                                             java.lang.Boolean invert)

getPointList

public static java.util.ArrayList<java.lang.Integer> getPointList(java.lang.String ptStr,
                                                                  int maxSize)

initialisePSM

public Template initialisePSM(java.awt.image.BufferedImage bimg,
                              java.util.ArrayList<java.lang.Integer> pts,
                              Template tem)

addPlugin

public void addPlugin(java.io.File sf)
               throws java.net.MalformedURLException
Throws:
java.net.MalformedURLException

removePlugin

public void removePlugin(java.lang.String file)
                  throws java.net.MalformedURLException
Throws:
java.net.MalformedURLException

addMenu

public void addMenu(javax.swing.JMenu menu)

removeMenu

public void removeMenu(javax.swing.JMenu menu)

flip

public void flip(ImageZoomPanel izp,
                 int[] plist)
Flip an image horizontally with optional mirroring of the template

Parameters:
izp - the ImageZoomPanel holding the image and template
plist - the symmetry data (point pairs)

getASM

public ASM getASM()

getORASM

public ORASM getORASM()

getPSM

public PSMNode getPSM()

checkBufferedImage

public static java.awt.image.BufferedImage checkBufferedImage(java.awt.Image img)
Returns a BufferedImage from the Image, justs casts if possible

Parameters:
img - the image to check / convert
Returns:
returns the BufferedImage version of Image

drawMaskOnImage

public static void drawMaskOnImage(java.awt.image.BufferedImage original,
                                   Template template,
                                   MaskInterface mask,
                                   java.awt.Color outside,
                                   int smooth,
                                   boolean invert)
Draw the mask on the image

Parameters:
original - the original image
template - the template
mask - the mask
outside - the outside colour
smooth - the amount of smoothing
invert - indicate the mask should be inverted

drawMaskOnImage

public static void drawMaskOnImage(FloatImage[] original,
                                   Template template,
                                   MaskInterface mask,
                                   java.awt.Color outside,
                                   int smooth,
                                   boolean invert)
Draw the mask on the image

Parameters:
original - the original image
template - the template
mask - the mask
outside - the outside colour
smooth - the amount of smoothing
invert - indicate the mask should be inverted

main

public static void main(java.lang.String[] args)
Parameters:
args - the command line arguments