Package adams.flow.transformer
Class ImageLabeler
-
- All Implemented Interfaces:
AdditionalInformationHandler,CleanUpHandler,Destroyable,GlobalInfoSupporter,LoggingLevelHandler,LoggingSupporter,OptionHandler,QuickInfoSupporter,ShallowCopySupporter<Actor>,SizeOfHandler,Stoppable,StoppableWithFeedback,VariablesInspectionHandler,VariableChangeListener,Actor,ErrorHandler,FlowControlButtonsSupporter,InputConsumer,InteractiveActor,OutputProducer,StopModeSupporter,Serializable,Comparable
public class ImageLabeler extends AbstractInteractiveTransformerDialog implements FlowControlButtonsSupporter
Allows the user to label images, setting a report field in the meta-data.
Any logged interaction will get added as JSON under interaction-log in the report.
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 min-user-mode: Expert
-name <java.lang.String> (property: name) The name of the actor. default: ImageLabeler
-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 min-user-mode: Expert
-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 min-user-mode: Expert
-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: 1200 minimum: 1
-height <int> (property: height) The height of the dialog. default: 800 minimum: 1
-x <int> (property: x) The X position of the dialog (>=0: absolute, -1: left, -2: center, -3: right ). default: -2 minimum: -3
-y <int> (property: y) The Y position of the dialog (>=0: absolute, -1: top, -2: center, -3: bottom ). default: -2 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
-field <adams.data.report.Field> (property: field) The field to use for the chosen label, must be of type S. default: Classification[S]
-label <adams.core.base.BaseString> [-label ...] (property: labels) The labels to use. default:
-use-buttons <boolean> (property: useButtons) If enabled, buttons are used for selecting the label rather than a drop-down list. default: true
-overlay <adams.gui.visualization.object.overlay.ClassificationLabelTextOverlay> (property: overlay) The overlay to use. default: adams.gui.visualization.object.overlay.ClassificationLabelTextOverlay
-left-divider-location <int> (property: leftDividerLocation) The position for the left divider in pixels. default: 200 minimum: 1
-right-divider-location <int> (property: rightDividerLocation) The position for the right divider in pixels. default: 900 minimum: 1
-zoom <double> (property: zoom) The zoom level in percent. default: 100.0 minimum: 1.0 maximum: 1600.0
-best-fit <boolean> (property: bestFit) If enabled, the image gets fitted into the viewport. default: false
-interaction-logging-filter <adams.gui.visualization.image.interactionlogging.InteractionLoggingFilter> (property: interactionLoggingFilter) The interaction logger to use. default: adams.gui.visualization.image.interactionlogging.Null
-tool-options-restore <adams.core.io.PlaceholderFile> (property: toolOptionsRestore) The JSON file to store the tool options in for restoring it the next time the actor gets called; ignored if pointing to a directory. default: ${CWD}-show-flow-control-buttons <boolean> (property: showFlowControlButtons) If enabled, shows the 'stop flow' button. default: false
- Author:
- FracPete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringFIELD_INTERACTIONLOGprotected booleanm_Acceptedwhether the dialog got accepted.protected booleanm_BestFitwhether to use best fit.protected Fieldm_Fieldthe field to use in the report.protected InteractionLoggingFilterm_InteractionLoggingFilterthe interaction logger to use.protected BaseString[]m_Labelsthe labels.protected intm_LeftDividerLocationthe position for the left divider.protected ClassificationLabelTextOverlaym_Overlaythe overlay.protected ObjectAnnotationPanelm_PanelObjectAnnotationthe panel.protected intm_RightDividerLocationthe position for the right divider.protected booleanm_ShowFlowControlButtonswhether to show the flow control buttons.protected Datem_StartTimestampthe start timestamp.protected PlaceholderFilem_ToolOptionsRestorethe json file to store the tool options in.protected ChangeListenerm_ToolOptionsUpdatedListenerthe listener for when tool options change.protected booleanm_UseButtonswhether to use buttons or drop-down list.protected doublem_Zoomthe zoom level.-
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 ImageLabeler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]accepts()Returns the class that the consumer accepts.protected voidaddInterationsToReport(Report report, List<InteractionEvent> events)Adds the interactions to the report.StringbestFitTipText()Returns the tip text for this property.voidclearPanel()Clears the content of the panel.voiddefineOptions()Adds options to the internal list of options.StringdoInteract()Performs the interaction with the user.StringfieldTipText()Returns the tip text for this property.Class[]generates()Returns the class of objects that it generates.booleangetBestFit()Returns whether to use best fit for the image or not.protected intgetDefaultHeight()Returns the default height for the dialog.protected intgetDefaultWidth()Returns the default width for the dialog.protected intgetDefaultX()Returns the default X position for the dialog.protected intgetDefaultY()Returns the default Y position for the dialog.FieldgetField()Returns the field to use for the label.InteractionLoggingFiltergetInteractionLoggingFilter()Returns the interaction logger in use.BaseString[]getLabels()Returns the labels to use.intgetLeftDividerLocation()Returns the position for the left divider in pixels.ClassificationLabelTextOverlaygetOverlay()Returns the overlay to use.StringgetQuickInfo()Returns a quick info about the actor, which will be displayed in the GUI.intgetRightDividerLocation()Returns the position for the right divider in pixels.booleangetShowFlowControlButtons()Returns whether to show flow control button(s).PlaceholderFilegetToolOptionsRestore()Returns the JSON file to store the tool options in for restoring the next time the actor gets called.booleangetUseButtons()Returns whether to use buttons instead of drop-down list.doublegetZoom()Returns the zoom level in percent.StringglobalInfo()Returns a string describing the object.StringinteractionLoggingFilterTipText()Returns the tip text for this property.StringlabelsTipText()Returns the tip text for this property.StringleftDividerLocationTipText()Returns the tip text for this property.protected BasePanelnewPanel()Creates the panel to display in the dialog.StringoverlayTipText()Returns the tip text for this property.protected voidpostCreateDialog(BaseDialog dialog, BasePanel panel)Hook method after the dialog got created.StringrightDividerLocationTipText()Returns the tip text for this property.voidsetBestFit(boolean value)Sets whether to use best fit for the image or not.voidsetField(Field value)Sets the field to use for the label.voidsetInteractionLoggingFilter(InteractionLoggingFilter value)Sets the interaction logger to use.voidsetLabels(BaseString[] value)Sets the labels to use.voidsetLeftDividerLocation(int value)Sets the position for the left divider in pixels.voidsetOverlay(ClassificationLabelTextOverlay value)Sets the overlay to use.voidsetRightDividerLocation(int value)Sets the position for the right divider in pixels.voidsetShowFlowControlButtons(boolean value)Sets whether to show flow control button(s).voidsetToolOptionsRestore(PlaceholderFile value)Sets the JSON file to store the tool options in for restoring the next time the actor gets called.StringsetUp()Initializes the item for flow execution.voidsetUseButtons(boolean value)Sets the labels to use.voidsetZoom(double value)Sets the zoom level in percent (0-1600).StringshowFlowControlButtonsTipText()Returns the tip text for this property.StringtoolOptionsRestoreTipText()Returns the tip text for this property.StringuseButtonsTipText()Returns the tip text for this property.StringzoomTipText()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, 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, 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
cleanUp, 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, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, 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
-
m_Field
protected Field m_Field
the field to use in the report.
-
m_Labels
protected BaseString[] m_Labels
the labels.
-
m_UseButtons
protected boolean m_UseButtons
whether to use buttons or drop-down list.
-
m_Overlay
protected ClassificationLabelTextOverlay m_Overlay
the overlay.
-
m_LeftDividerLocation
protected int m_LeftDividerLocation
the position for the left divider.
-
m_RightDividerLocation
protected int m_RightDividerLocation
the position for the right divider.
-
m_Zoom
protected double m_Zoom
the zoom level.
-
m_BestFit
protected boolean m_BestFit
whether to use best fit.
-
m_InteractionLoggingFilter
protected InteractionLoggingFilter m_InteractionLoggingFilter
the interaction logger to use.
-
m_ToolOptionsRestore
protected PlaceholderFile m_ToolOptionsRestore
the json file to store the tool options in.
-
m_ShowFlowControlButtons
protected boolean m_ShowFlowControlButtons
whether to show the flow control buttons.
-
m_Accepted
protected boolean m_Accepted
whether the dialog got accepted.
-
m_StartTimestamp
protected transient Date m_StartTimestamp
the start timestamp.
-
m_PanelObjectAnnotation
protected ObjectAnnotationPanel m_PanelObjectAnnotation
the panel.
-
m_ToolOptionsUpdatedListener
protected ChangeListener m_ToolOptionsUpdatedListener
the listener for when tool options change.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceGlobalInfoSupporter- Specified by:
globalInfoin classAbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceOptionHandler- Overrides:
defineOptionsin classAbstractInteractiveTransformerDialog
-
getDefaultX
protected int getDefaultX()
Returns the default X position for the dialog.- Overrides:
getDefaultXin classAbstractInteractiveTransformerDialog- Returns:
- the default X position
-
getDefaultY
protected int getDefaultY()
Returns the default Y position for the dialog.- Overrides:
getDefaultYin classAbstractInteractiveTransformerDialog- Returns:
- the default Y position
-
getDefaultWidth
protected int getDefaultWidth()
Returns the default width for the dialog.- Overrides:
getDefaultWidthin classAbstractInteractiveTransformerDialog- Returns:
- the default width
-
getDefaultHeight
protected int getDefaultHeight()
Returns the default height for the dialog.- Overrides:
getDefaultHeightin classAbstractInteractiveTransformerDialog- Returns:
- the default height
-
setField
public void setField(Field value)
Sets the field to use for the label.- Parameters:
value- the field
-
getField
public Field getField()
Returns the field to use for the label.- Returns:
- the field
-
fieldTipText
public String fieldTipText()
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.
-
setUseButtons
public void setUseButtons(boolean value)
Sets the labels to use.- Parameters:
value- the labels
-
getUseButtons
public boolean getUseButtons()
Returns whether to use buttons instead of drop-down list.- Returns:
- true if to use buttons
-
useButtonsTipText
public String useButtonsTipText()
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(ClassificationLabelTextOverlay value)
Sets the overlay to use.- Parameters:
value- the overlay
-
getOverlay
public ClassificationLabelTextOverlay getOverlay()
Returns the overlay to use.- 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.
-
setLeftDividerLocation
public void setLeftDividerLocation(int value)
Sets the position for the left divider in pixels.- Parameters:
value- the position
-
getLeftDividerLocation
public int getLeftDividerLocation()
Returns the position for the left divider in pixels.- Returns:
- the position
-
leftDividerLocationTipText
public String leftDividerLocationTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setRightDividerLocation
public void setRightDividerLocation(int value)
Sets the position for the right divider in pixels.- Parameters:
value- the position
-
getRightDividerLocation
public int getRightDividerLocation()
Returns the position for the right divider in pixels.- Returns:
- the position
-
rightDividerLocationTipText
public String rightDividerLocationTipText()
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, 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.
-
setBestFit
public void setBestFit(boolean value)
Sets whether to use best fit for the image or not.- Parameters:
value- true if to use
-
getBestFit
public boolean getBestFit()
Returns whether to use best fit for the image or not.- Returns:
- true if to use
-
bestFitTipText
public String bestFitTipText()
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.
-
setToolOptionsRestore
public void setToolOptionsRestore(PlaceholderFile value)
Sets the JSON file to store the tool options in for restoring the next time the actor gets called. Ignored when pointing to a directory.- Parameters:
value- the file
-
getToolOptionsRestore
public PlaceholderFile getToolOptionsRestore()
Returns the JSON file to store the tool options in for restoring the next time the actor gets called. Ignored when pointing to a directory.- Returns:
- the file
-
toolOptionsRestoreTipText
public String toolOptionsRestoreTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setShowFlowControlButtons
public void setShowFlowControlButtons(boolean value)
Sets whether to show flow control button(s).- Specified by:
setShowFlowControlButtonsin interfaceFlowControlButtonsSupporter- Parameters:
value- true if to show
-
getShowFlowControlButtons
public boolean getShowFlowControlButtons()
Returns whether to show flow control button(s).- Specified by:
getShowFlowControlButtonsin interfaceFlowControlButtonsSupporter- Returns:
- true if to show
-
showFlowControlButtonsTipText
public String showFlowControlButtonsTipText()
Returns the tip text for this property.- Specified by:
showFlowControlButtonsTipTextin interfaceFlowControlButtonsSupporter- 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:
getQuickInfoin interfaceActor- Specified by:
getQuickInfoin interfaceQuickInfoSupporter- Overrides:
getQuickInfoin classAbstractInteractiveTransformerDialog- Returns:
- null if no info available, otherwise short string
-
accepts
public Class[] accepts()
Returns the class that the consumer accepts.- Specified by:
acceptsin interfaceInputConsumer- Returns:
- the Class of objects that can be processed
-
generates
public Class[] generates()
Returns the class of objects that it generates.- Specified by:
generatesin interfaceOutputProducer- Returns:
- the Class of the generated tokens
-
clearPanel
public void clearPanel()
Clears the content of the panel.- Specified by:
clearPanelin classAbstractInteractiveTransformerDialog
-
newPanel
protected BasePanel newPanel()
Creates the panel to display in the dialog.- Specified by:
newPanelin classAbstractInteractiveTransformerDialog- Returns:
- the panel
-
postCreateDialog
protected void postCreateDialog(BaseDialog dialog, BasePanel panel)
Hook method after the dialog got created.- Overrides:
postCreateDialogin classAbstractInteractiveTransformerDialog- Parameters:
dialog- the dialog that got just createdpanel- the panel displayed in the frame
-
addInterationsToReport
protected void addInterationsToReport(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
-
setUp
public String setUp()
Initializes the item for flow execution.- Specified by:
setUpin interfaceActor- Overrides:
setUpin classAbstractActor- Returns:
- null if everything is fine, otherwise error message
- See Also:
AbstractActor.reset()
-
doInteract
public String doInteract()
Performs the interaction with the user.- Specified by:
doInteractin interfaceInteractiveActor- Overrides:
doInteractin classAbstractInteractiveTransformerDialog- Returns:
- null if successfully interacted, otherwise error message
-
-