Package adams.flow.transformer
Class ImageAnnotator
-
- All Implemented Interfaces:
AdditionalInformationHandler
,CleanUpHandler
,Destroyable
,GlobalInfoSupporter
,LoggingLevelHandler
,LoggingSupporter
,OptionHandler
,QuickInfoSupporter
,ShallowCopySupporter<Actor>
,SizeOfHandler
,Stoppable
,StoppableWithFeedback
,VariablesInspectionHandler
,VariableChangeListener
,Actor
,ErrorHandler
,InputConsumer
,InteractiveActor
,OutputProducer
,StopModeSupporter
,Serializable
,Comparable
public class ImageAnnotator extends AbstractInteractiveTransformerDialog
Allows the user to label objects located on the image and pass on this enriched meta-data.
Input/output:
- accepts:
adams.data.image.AbstractImageContainer
- generates:
adams.data.image.AbstractImageContainer
-logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel) The logging level for outputting errors and debugging output. default: WARNING
-name <java.lang.String> (property: name) The name of the actor. default: ImageAnnotator
-annotation <adams.core.base.BaseAnnotation> (property: annotations) The annotations to attach to this actor. default:
-skip <boolean> (property: skip) If set to true, transformation is skipped and the input token is just forwarded as it is. default: false
-stop-flow-on-error <boolean> (property: stopFlowOnError) If set to true, the flow execution at this level gets stopped in case this actor encounters an error; the error gets propagated; useful for critical actors. default: false
-silent <boolean> (property: silent) If enabled, then no errors are output in the console; Note: the enclosing actor handler must have this enabled as well. default: false
-short-title <boolean> (property: shortTitle) If enabled uses just the name for the title instead of the actor's full name. default: false
-width <int> (property: width) The width of the dialog. default: 800 minimum: 1
-height <int> (property: height) The height of the dialog. default: 600 minimum: 1
-x <int> (property: x) The X position of the dialog (>=0: absolute, -1: left, -2: center, -3: right ). default: -1 minimum: -3
-y <int> (property: y) The Y position of the dialog (>=0: absolute, -1: top, -2: center, -3: bottom ). default: -1 minimum: -3
-stop-if-canceled <boolean> (property: stopFlowIfCanceled) If enabled, the flow gets stopped in case the user cancels the dialog. default: false
-custom-stop-message <java.lang.String> (property: customStopMessage) The custom stop message to use in case a user cancelation stops the flow (default is the full name of the actor) default:
-stop-mode <GLOBAL|STOP_RESTRICTOR> (property: stopMode) The stop mode to use. default: GLOBAL
-prefix <java.lang.String> (property: prefix) The report field prefix to use for the located objects. default: Object.
-suffix <java.lang.String> (property: suffix) The report field suffix to use for the labels. default: .type
-label <adams.core.base.BaseString> [-label ...] (property: labels) The labels to use. default:
-selection-processor <adams.gui.visualization.image.selection.AbstractSelectionProcessor> (property: selectionProcessor) The selection processor to use. default: adams.gui.visualization.image.selection.NullProcessor
-selection-box-color <java.awt.Color> (property: selectionBoxColor) The color of the selection box. default: #808080
-overlay <adams.gui.visualization.image.ImageOverlay> (property: overlay) The overlay to use for highlighting the objects. default: adams.gui.visualization.image.NullOverlay
-zoom <double> (property: zoom) The zoom level in percent. default: 100.0 minimum: -1.0 maximum: 1600.0
- Author:
- FracPete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ImageAnnotator.AnnotatorPanel
Panel for annotating an image.
-
Field Summary
Fields Modifier and Type Field Description static String
FIELD_INTERACTIONLOG
protected boolean
m_Accepted
whether the dialog got accepted.protected InteractionLoggingFilter
m_InteractionLoggingFilter
the interaction logger to use.protected BaseString[]
m_Labels
the labels.protected String
m_LastLabel
the last selected label.protected Integer
m_LastMainDividerLocation
the last main divider location.protected ImageOverlay
m_Overlay
the overlay to use for highlighting the objects.protected String
m_Prefix
the prefix to use in the report.protected SelectionProcessor
m_SelectionProcessor
the selection processor to apply.protected SelectionShapePainter
m_SelectionShapePainter
the painter for the selection shape.protected Date
m_StartTimestamp
the start timestamp.protected String
m_Suffix
the suffix to use for the labels.protected double
m_Zoom
the zoom level.static String
UNSET
-
Fields inherited from class adams.flow.transformer.AbstractInteractiveTransformerDialog
m_CustomStopMessage, m_Dialog, m_Height, m_LastPosition, m_LastSize, m_Panel, m_ShortTitle, m_StopFlowIfCanceled, m_StopMode, m_Width, m_X, m_Y
-
Fields inherited from class adams.flow.transformer.AbstractTransformer
BACKUP_INPUT, BACKUP_OUTPUT, m_InputToken, m_OutputToken
-
Fields inherited from class adams.flow.core.AbstractActor
m_Annotations, m_BackupState, m_DetectedObjectVariables, m_DetectedVariables, m_ErrorHandler, m_Executed, m_Executing, m_ExecutionListeningSupporter, m_FullName, m_LoggingPrefix, m_Name, m_Parent, m_ScopeHandler, m_Self, m_Silent, m_Skip, m_StopFlowOnError, m_StopMessage, m_Stopped, m_StorageHandler, m_VariablesUpdated
-
Fields inherited from class adams.core.option.AbstractOptionHandler
m_OptionManager
-
Fields inherited from class adams.core.logging.LoggingObject
m_Logger, m_LoggingIsEnabled, m_LoggingLevel
-
Fields inherited from interface adams.flow.core.Actor
FILE_EXTENSION, FILE_EXTENSION_GZ
-
Fields inherited from interface adams.flow.core.InteractiveActor
INTERACTION_CANCELED
-
-
Constructor Summary
Constructors Constructor Description ImageAnnotator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]
accepts()
Returns the class that the consumer accepts.protected void
addInteractionsToReport(Report report, List<InteractionEvent> events)
Adds the interactions to the report.void
clearPanel()
Clears the content of the panel.void
defineOptions()
Adds options to the internal list of options.String
doInteract()
Performs the interaction with the user.Class[]
generates()
Returns the class of objects that it generates.InteractionLoggingFilter
getInteractionLoggingFilter()
Returns the interaction logger in use.BaseString[]
getLabels()
Returns the labels to use.ImageOverlay
getOverlay()
Returns the overlay to use for highlighting the objects.String
getPrefix()
Returns the field prefix to use for the located objects.String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.SelectionProcessor
getSelectionProcessor()
Returns the selection processor in use.SelectionShapePainter
getSelectionShapePainter()
Returns the painter for the selection shape.String
getSuffix()
Returns the field suffix to use for the labels.double
getZoom()
Returns the zoom level in percent.String
globalInfo()
Returns a string describing the object.String
interactionLoggingFilterTipText()
Returns the tip text for this property.String
labelsTipText()
Returns the tip text for this property.protected BasePanel
newPanel()
Creates the panel to display in the dialog.String
overlayTipText()
Returns the tip text for this property.protected void
postCreateDialog(BaseDialog dialog, BasePanel panel)
Hook method after the dialog got created.String
prefixTipText()
Returns the tip text for this property.String
selectionProcessorTipText()
Returns the tip text for this property.String
selectionShapePainterTipText()
Returns the tip text for this property.void
setInteractionLoggingFilter(InteractionLoggingFilter value)
Sets the interaction logger to use.void
setLabels(BaseString[] value)
Sets the labels to use.void
setOverlay(ImageOverlay value)
Sets the overlay to use for highlighting the objects.void
setPrefix(String value)
Sets the field prefix to use for the located objects.void
setSelectionProcessor(SelectionProcessor value)
Sets the selection processor to use.void
setSelectionShapePainter(SelectionShapePainter value)
Sets the painter for the selection shape.void
setSuffix(String value)
Sets the field suffix to use for the labels.void
setZoom(double value)
Sets the zoom level in percent (0-1600).String
suffixTipText()
Returns the tip text for this property.String
zoomTipText()
Returns the tip text for this property.-
Methods inherited from class adams.flow.transformer.AbstractInteractiveTransformerDialog
cleanUp, cleanUpGUI, createDialog, createTitle, customStopMessageTipText, deregisterWindow, doCreateDialog, doExecute, doInteractHeadless, getCustomStopMessage, getDefaultHeight, getDefaultWidth, getDefaultX, getDefaultY, getDialog, getHeight, getPanel, getShortTitle, getStopFlowIfCanceled, getStopMode, getWidth, getX, getY, heightTipText, initialize, preCreateDialog, registerWindow, reset, setCustomStopMessage, setHeight, setShortTitle, setStopFlowIfCanceled, setStopMode, setWidth, setX, setY, shortTitleTipText, stopExecution, stopFlowIfCanceledTipText, stopModeTipText, supportsHeadlessInteraction, widthTipText, xTipText, yTipText
-
Methods inherited from class adams.flow.transformer.AbstractTransformer
backupState, currentInput, execute, hasInput, hasPendingOutput, input, output, postExecute, restoreState, wrapUp
-
Methods inherited from class adams.flow.core.AbstractActor
annotationsTipText, canInspectOptions, canPerformSetUpCheck, compareTo, configureLogger, destroy, equals, finalUpdateVariables, findVariables, findVariables, forceVariables, forCommandLine, forName, forName, getAdditionalInformation, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowActors, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, handleException, hasErrorHandler, hasStopMessage, index, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, preExecute, pruneBackup, pruneBackup, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, silentTipText, sizeOf, skipTipText, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables, variableChanged
-
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, setLoggingLevel, toCommandLine, toString
-
Methods inherited from class adams.core.logging.LoggingObject
getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface adams.flow.core.Actor
compareTo, destroy, equals, execute, findVariables, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, hasErrorHandler, hasStopMessage, index, isExecuted, isFinished, isHeadless, isStopped, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, toCommandLine, variableChanged, wrapUp
-
Methods inherited from interface adams.core.AdditionalInformationHandler
getAdditionalInformation
-
Methods inherited from interface adams.core.logging.LoggingLevelHandler
getLoggingLevel, setLoggingLevel
-
Methods inherited from interface adams.core.logging.LoggingSupporter
getLogger, isLoggingEnabled
-
Methods inherited from interface adams.core.option.OptionHandler
cleanUpOptions, getOptionManager
-
Methods inherited from interface adams.core.VariablesInspectionHandler
canInspectOptions
-
-
-
-
Field Detail
-
FIELD_INTERACTIONLOG
public static final String FIELD_INTERACTIONLOG
- See Also:
- Constant Field Values
-
UNSET
public static final String UNSET
- See Also:
- Constant Field Values
-
m_Prefix
protected String m_Prefix
the prefix to use in the report.
-
m_Suffix
protected String m_Suffix
the suffix to use for the labels.
-
m_Labels
protected BaseString[] m_Labels
the labels.
-
m_SelectionProcessor
protected SelectionProcessor m_SelectionProcessor
the selection processor to apply.
-
m_SelectionShapePainter
protected SelectionShapePainter m_SelectionShapePainter
the painter for the selection shape.
-
m_Overlay
protected ImageOverlay m_Overlay
the overlay to use for highlighting the objects.
-
m_Zoom
protected double m_Zoom
the zoom level.
-
m_InteractionLoggingFilter
protected InteractionLoggingFilter m_InteractionLoggingFilter
the interaction logger to use.
-
m_Accepted
protected boolean m_Accepted
whether the dialog got accepted.
-
m_LastLabel
protected transient String m_LastLabel
the last selected label.
-
m_LastMainDividerLocation
protected transient Integer m_LastMainDividerLocation
the last main divider location.
-
m_StartTimestamp
protected transient Date m_StartTimestamp
the start timestamp.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfo
in interfaceGlobalInfoSupporter
- Specified by:
globalInfo
in classAbstractOptionHandler
- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptions
in interfaceOptionHandler
- Overrides:
defineOptions
in classAbstractInteractiveTransformerDialog
-
setPrefix
public void setPrefix(String value)
Sets the field prefix to use for the located objects.- Parameters:
value
- the field prefix
-
getPrefix
public String getPrefix()
Returns the field prefix to use for the located objects.- Returns:
- the field prefix
-
prefixTipText
public String prefixTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setSuffix
public void setSuffix(String value)
Sets the field suffix to use for the labels.- Parameters:
value
- the field suffix
-
getSuffix
public String getSuffix()
Returns the field suffix to use for the labels.- Returns:
- the field suffix
-
suffixTipText
public String suffixTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setLabels
public void setLabels(BaseString[] value)
Sets the labels to use.- Parameters:
value
- the labels
-
getLabels
public BaseString[] getLabels()
Returns the labels to use.- Returns:
- the labels
-
labelsTipText
public String labelsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setSelectionProcessor
public void setSelectionProcessor(SelectionProcessor value)
Sets the selection processor to use.- Parameters:
value
- the processor
-
getSelectionProcessor
public SelectionProcessor getSelectionProcessor()
Returns the selection processor in use.- Returns:
- the processor
-
selectionProcessorTipText
public String selectionProcessorTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setSelectionShapePainter
public void setSelectionShapePainter(SelectionShapePainter value)
Sets the painter for the selection shape.- Parameters:
value
- the painter
-
getSelectionShapePainter
public SelectionShapePainter getSelectionShapePainter()
Returns the painter for the selection shape.- Returns:
- the painter
-
selectionShapePainterTipText
public String selectionShapePainterTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setOverlay
public void setOverlay(ImageOverlay value)
Sets the overlay to use for highlighting the objects.- Parameters:
value
- the overlay
-
getOverlay
public ImageOverlay getOverlay()
Returns the overlay to use for highlighting the objects.- Returns:
- the overlay
-
overlayTipText
public String overlayTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setZoom
public void setZoom(double value)
Sets the zoom level in percent (0-1600).- Parameters:
value
- the zoom, -1 to fit window, or 0-1600
-
getZoom
public double getZoom()
Returns the zoom level in percent.- Returns:
- the zoom
-
zoomTipText
public String zoomTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setInteractionLoggingFilter
public void setInteractionLoggingFilter(InteractionLoggingFilter value)
Sets the interaction logger to use.- Parameters:
value
- the logger
-
getInteractionLoggingFilter
public InteractionLoggingFilter getInteractionLoggingFilter()
Returns the interaction logger in use.- Returns:
- the logger
-
interactionLoggingFilterTipText
public String interactionLoggingFilterTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfo
in interfaceActor
- Specified by:
getQuickInfo
in interfaceQuickInfoSupporter
- Overrides:
getQuickInfo
in classAbstractInteractiveTransformerDialog
- Returns:
- null if no info available, otherwise short string
-
accepts
public Class[] accepts()
Returns the class that the consumer accepts.- Returns:
- the Class of objects that can be processed
-
generates
public Class[] generates()
Returns the class of objects that it generates.- Returns:
- the Class of the generated tokens
-
clearPanel
public void clearPanel()
Clears the content of the panel.- Specified by:
clearPanel
in classAbstractInteractiveTransformerDialog
-
newPanel
protected BasePanel newPanel()
Creates the panel to display in the dialog.- Specified by:
newPanel
in classAbstractInteractiveTransformerDialog
- Returns:
- the panel
-
postCreateDialog
protected void postCreateDialog(BaseDialog dialog, BasePanel panel)
Hook method after the dialog got created.- Overrides:
postCreateDialog
in classAbstractInteractiveTransformerDialog
- Parameters:
dialog
- the dialog that got just createdpanel
- the panel displayed in the frame
-
addInteractionsToReport
protected void addInteractionsToReport(Report report, List<InteractionEvent> events)
Adds the interactions to the report.- Parameters:
report
- the report to add toevents
- the events to add, ignored if null
-
doInteract
public String doInteract()
Performs the interaction with the user.- Specified by:
doInteract
in interfaceInteractiveActor
- Overrides:
doInteract
in classAbstractInteractiveTransformerDialog
- Returns:
- null if successfully interacted, otherwise error message
-
-