Class ObjectLocationsFromSpreadSheet

  • All Implemented Interfaces:
    Destroyable, GlobalInfoSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, SizeOfHandler, BoundingBoxFallbackSupporter, ContentHandler, Serializable

    public class ObjectLocationsFromSpreadSheet
    extends AbstractContentHandler
    implements BoundingBoxFallbackSupporter
    Displays the following image types with an overlay for the objects stored in the spreadsheet with the same name (using the spreadsheet reader's default extension) or with the specified alternative file suffix to the name (eg '-rois'): *

    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
     
    -image-reader <adams.data.io.input.AbstractImageReader> (property: imageReader)
        The image reader to use.
        default: adams.data.io.input.JAIImageReader
     
    -reader <adams.data.io.input.ObjectLocationsSpreadSheetReader> (property: reader)
        The reader setup to use for reading the object locations from the spreadsheet.
        default: adams.data.io.input.ObjectLocationsSpreadSheetReader -reader \"adams.data.io.input.CsvSpreadSheetReader -data-row-type adams.data.spreadsheet.DenseDataRow -spreadsheet-type adams.data.spreadsheet.DefaultSpreadSheet\" -row-finder adams.data.spreadsheet.rowfinder.AllFinder -col-left x0 -col-top y0 -col-right x1 -col-bottom y1 -col-type label_str
     
    -alternative-file-suffix <java.lang.String> (property: alternativeFileSuffix)
        The alternative file suffix to use for locating the associated spreadsheet
        (eg '-rois').
        default: -rois
     
    -color <java.awt.Color> (property: color)
        The color to use for the objects.
        default: #ff0000
     
    -use-colors-per-type <boolean> (property: useColorsPerType)
        If enabled, individual colors per type are used.
        default: true
     
    -type-color-provider <adams.gui.visualization.core.ColorProvider> (property: typeColorProvider)
        The color provider to use for the various types.
        default: adams.gui.visualization.core.DefaultColorProvider
     
    -type-suffix <java.lang.String> (property: typeSuffix)
        The suffix of fields in the report to identify the type.
        default: .type
     
    -type-regexp <adams.core.base.BaseRegExp> (property: typeRegExp)
        The regular expression that the types must match in order to get drawn (
        eg only plotting a subset).
        default: .*
        more: https://docs.oracle.com/javase/tutorial/essential/regex/
        https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html
     
    -filled <boolean> (property: filled)
        If enabled, the shape is drawn filled.
        default: false
     
    -outline-alpha <int> (property: outlineAlpha)
        This alpha is applied to the color of the outlines.
        default: 255
        minimum: 0
        maximum: 255
     
    -polygon-bounds <boolean> (property: polygonBounds)
        If enabled, the polygon bounds are drawn as well.
        default: false
     
    -label-format <java.lang.String> (property: labelFormat)
        The label format string to use for the rectangles; '#' for index, '@' for
        type and '$' for short type (type suffix must be defined for '@' and '$'
        ), '{BLAH}' gets replaced with the value associated with the meta-data key
        'BLAH'; for instance: '# @' or '# {BLAH}'; in case of numeric values, use
        '|.X' to limit the number of decimals, eg '{BLAH|.2}' for a maximum of decimals
        after the decimal point.
        default: $
     
    -label-font <java.awt.Font> (property: labelFont)
        The font to use for the labels.
        default: Display-PLAIN-14
     
    -label-anchor <TOP_LEFT|TOP_CENTER|TOP_RIGHT|MIDDLE_LEFT|MIDDLE_CENTER|MIDDLE_RIGHT|BOTTOM_LEFT|BOTTOM_CENTER|BOTTOM_RIGHT> (property: labelAnchor)
        The anchor for the label.
        default: TOP_RIGHT
     
    -label-offset-x <int> (property: labelOffsetX)
        The X offset for the label; values of 0 or greater are interpreted as absolute
        pixels, -1 uses left as anchor, -2 the center and -3 the right.
        default: 0
     
    -label-offset-y <int> (property: labelOffsetY)
        The Y offset for the label values of 0 or greater are interpreted as absolute
        pixels, -1 uses top as anchor, -2 the middle and -3 the bottom.
        default: 0
     
    -predefined-labels <adams.core.base.BaseString> [-predefined-labels ...] (property: predefinedLabels)
        The predefined labels to use for setting up the colors; avoids constants
        changing in color pallet.
        default:
     
    -vary-shape-color <boolean> (property: varyShapeColor)
        If enabled, the shape colors get varied.
        default: false
     
    -shape-color-provider <adams.gui.visualization.core.ColorProvider> (property: shapeColorProvider)
        The color provider to use when varying the shape colors.
        default: adams.gui.visualization.core.TranslucentColorProvider -provider adams.gui.visualization.core.DefaultColorProvider
     
    -finder <adams.data.objectfinder.ObjectFinder> (property: finder)
        The object finder to use.
        default: adams.data.objectfinder.AllFinder
     
    -bounding-box-fallback-ratio <double> (property: boundingBoxFallbackRatio)
        The threshold for the ratio between the areas (shape / bbox), below which
        the bounding box is used over the polygon (ie bad masks/shapes).
        default: 0.0
        minimum: 0.0
        maximum: 1.0
     
    -overlap-detection <adams.data.objectoverlap.ObjectOverlap> (property: overlapDetection)
        The algorithm to use for determining the overlapping objects.
        default: adams.data.objectoverlap.AreaRatio
     
    -overlap-removal <adams.data.overlappingobjectremoval.OverlappingObjectRemoval> (property: overlapRemoval)
        The algorithm to use for removing the overlapping objects.
        default: adams.data.overlappingobjectremoval.PassThrough
     
    -use-alternative-location <boolean> (property: useAlternativeLocation)
        If enabled, the alternative location is used to locate the associated report
        rather than the directory with the image.
        default: false
     
    -alternative-location <adams.core.io.PlaceholderDirectory> (property: alternativeLocation)
        The alternative location to use look for associated reports.
        default: ${CWD}
     
    -show-object-panel <boolean> (property: showObjectPanel)
        If enabled, the panel for selecting located objects is being displayed.
        default: false
     
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_ImageReader

        protected ImageReader m_ImageReader
        the image reader to use.
      • m_AlternativeFileSuffix

        protected String m_AlternativeFileSuffix
        the alternative file suffix to use.
      • m_Color

        protected Color m_Color
        the color for the objects.
      • m_UseColorsPerType

        protected boolean m_UseColorsPerType
        whether to use colors per type.
      • m_TypeColorProvider

        protected ColorProvider m_TypeColorProvider
        the color provider to use.
      • m_TypeSuffix

        protected String m_TypeSuffix
        the suffix for the type.
      • m_TypeRegExp

        protected BaseRegExp m_TypeRegExp
        the regular expression for the types to draw.
      • m_Filled

        protected boolean m_Filled
        whether to draw the shape filled.
      • m_OutlineAlpha

        protected int m_OutlineAlpha
        the alpha value to use for the polygon bounds.
      • m_PolygonBounds

        protected boolean m_PolygonBounds
        whether to draw the bounds of the polygon as well.
      • m_LabelFormat

        protected String m_LabelFormat
        the label for the rectangles.
      • m_LabelFont

        protected Font m_LabelFont
        the label font.
      • m_LabelAnchor

        protected ImageAnchor m_LabelAnchor
        the label anchor.
      • m_LabelOffsetX

        protected int m_LabelOffsetX
        the x offset for the label.
      • m_LabelOffsetY

        protected int m_LabelOffsetY
        the y offset for the label.
      • m_PredefinedLabels

        protected BaseString[] m_PredefinedLabels
        the predefined labels.
      • m_VaryShapeColor

        protected boolean m_VaryShapeColor
        whether to vary the shape color.
      • m_ShapeColorProvider

        protected ColorProvider m_ShapeColorProvider
        the color provider to use when varying the shape colors.
      • m_Finder

        protected ObjectFinder m_Finder
        the object finder to use.
      • m_BoundingBoxFallbackRatio

        protected double m_BoundingBoxFallbackRatio
        the ratio used for determining whether to fall back from polygon on bbox.
      • m_OverlapDetection

        protected ObjectOverlap m_OverlapDetection
        the object overlap calculation to use.
      • m_UseAlternativeLocation

        protected boolean m_UseAlternativeLocation
        whether to use an alternative location for the reports.
      • m_AlternativeLocation

        protected PlaceholderDirectory m_AlternativeLocation
        the alternative location.
      • m_ShowObjectPanel

        protected boolean m_ShowObjectPanel
        whether to show the located object panel.
    • Constructor Detail

      • ObjectLocationsFromSpreadSheet

        public ObjectLocationsFromSpreadSheet()
    • Method Detail

      • getDefaultImageReader

        protected ImageReader getDefaultImageReader()
        Returns the default image reader.
        Returns:
        the default
      • setImageReader

        public void setImageReader​(ImageReader value)
        Sets the image reader to use.
        Parameters:
        value - the reader
      • getImageReader

        public ImageReader getImageReader()
        Returns the image reader to use.
        Returns:
        the reader
      • imageReaderTipText

        public String imageReaderTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setReader

        public void setReader​(ObjectLocationsSpreadSheetReader value)
        Sets the reader setup to use for reading the object locations from the spreadsheet.
        Parameters:
        value - the reader
      • getReader

        public ObjectLocationsSpreadSheetReader getReader()
        Returns the reader setup to use for reading the object locations from the spreadsheet.
        Returns:
        the reader
      • readerTipText

        public String readerTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setAlternativeFileSuffix

        public void setAlternativeFileSuffix​(String value)
        Sets the alternative file suffix to use for locating the associated spreadsheet, excluding the extension (eg '-rois').
        Parameters:
        value - the suffix
      • getAlternativeFileSuffix

        public String getAlternativeFileSuffix()
        Returns the alternative file suffix to use for locating the associated spreadsheet, excluding the extension (eg '-rois').
        Returns:
        the suffix
      • alternativeFileSuffixTipText

        public String alternativeFileSuffixTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setColor

        public void setColor​(Color value)
        Sets the color to use for the objects.
        Parameters:
        value - the color
      • getColor

        public Color getColor()
        Returns the color to use for the objects.
        Returns:
        the color
      • colorTipText

        public String colorTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setUseColorsPerType

        public void setUseColorsPerType​(boolean value)
        Sets whether to use colors per type.
        Parameters:
        value - true if to use colors per type
      • getUseColorsPerType

        public boolean getUseColorsPerType()
        Returns whether to use colors per type.
        Returns:
        true if to use colors per type
      • useColorsPerTypeTipText

        public String useColorsPerTypeTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setTypeColorProvider

        public void setTypeColorProvider​(ColorProvider value)
        Sets the color provider to use for the types.
        Parameters:
        value - the provider
      • getTypeColorProvider

        public ColorProvider getTypeColorProvider()
        Returns the color provider to use for the types.
        Returns:
        the provider
      • typeColorProviderTipText

        public String typeColorProviderTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setTypeSuffix

        public void setTypeSuffix​(String value)
        Sets the suffix to use for the types.
        Parameters:
        value - the suffix
      • getTypeSuffix

        public String getTypeSuffix()
        Returns the suffix to use for the types.
        Returns:
        the suffix
      • typeSuffixTipText

        public String typeSuffixTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setTypeRegExp

        public void setTypeRegExp​(BaseRegExp value)
        Sets the regular expression that the types must match in order to get drawn.
        Parameters:
        value - the expression
      • getTypeRegExp

        public BaseRegExp getTypeRegExp()
        Returns the regular expression that the types must match in order to get drawn.
        Returns:
        the expression
      • typeRegExpTipText

        public String typeRegExpTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setFilled

        public void setFilled​(boolean value)
        Sets whether to draw the shape filled.
        Parameters:
        value - true if to fill
      • getFilled

        public boolean getFilled()
        Returns whether to draw the shape filled.
        Returns:
        true if to fill
      • filledTipText

        public String filledTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setOutlineAlpha

        public void setOutlineAlpha​(int value)
        Sets the alpha value to use when drawing the outlines.
        Parameters:
        value - the alpha value (0: transparent, 255: opaque)
      • getOutlineAlpha

        public int getOutlineAlpha()
        Returns the alpha value to use when drawing the outlines.
        Returns:
        the alpha value (0: transparent, 255: opaque)
      • outlineAlphaTipText

        public String outlineAlphaTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setPolygonBounds

        public void setPolygonBounds​(boolean value)
        Sets whether to draw the polygon bounds.
        Parameters:
        value - true if to draw bounds
      • getPolygonBounds

        public boolean getPolygonBounds()
        Returns whether to draw the polygon bounds.
        Returns:
        true if to draw bounds
      • polygonBoundsTipText

        public String polygonBoundsTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setLabelFormat

        public void setLabelFormat​(String value)
        Sets the label format.
        Parameters:
        value - the label format
      • getLabelFormat

        public String getLabelFormat()
        Returns the label format.
        Returns:
        the label format
      • labelFormatTipText

        public String labelFormatTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setLabelFont

        public void setLabelFont​(Font value)
        Sets the label font.
        Parameters:
        value - the label font
      • getLabelFont

        public Font getLabelFont()
        Returns the label font.
        Returns:
        the label font
      • labelFontTipText

        public String labelFontTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getDefaultLabelAnchor

        protected ImageAnchor getDefaultLabelAnchor()
        Returns the default label anchor.
        Returns:
        the default
      • setLabelAnchor

        public void setLabelAnchor​(ImageAnchor value)
        Sets the anchor for the label.
        Parameters:
        value - the anchor
      • getLabelAnchor

        public ImageAnchor getLabelAnchor()
        Returns the anchor for the label.
        Returns:
        the anchor
      • labelAnchorTipText

        public String labelAnchorTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getDefaultLabelOffsetX

        protected int getDefaultLabelOffsetX()
        Returns the default label offset for X.
        Returns:
        the default
      • setLabelOffsetX

        public void setLabelOffsetX​(int value)
        Sets the X offset for the label.
        Parameters:
        value - the X offset
      • getLabelOffsetX

        public int getLabelOffsetX()
        Returns the X offset for the label.
        Returns:
        the X offset
      • labelOffsetXTipText

        public String labelOffsetXTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getDefaultLabelOffsetY

        protected int getDefaultLabelOffsetY()
        Returns the default label offset for Y.
        Returns:
        the default
      • setLabelOffsetY

        public void setLabelOffsetY​(int value)
        Sets the Y offset for the label.
        Parameters:
        value - the Y offset
      • getLabelOffsetY

        public int getLabelOffsetY()
        Returns the Y offset for the label.
        Returns:
        the Y offset
      • labelOffsetYTipText

        public String labelOffsetYTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setPredefinedLabels

        public void setPredefinedLabels​(BaseString[] value)
        Sets the predefined labels.
        Parameters:
        value - the labels
      • getPredefinedLabels

        public BaseString[] getPredefinedLabels()
        Returns the predefined labels.
        Returns:
        the labels
      • predefinedLabelsTipText

        public String predefinedLabelsTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setVaryShapeColor

        public void setVaryShapeColor​(boolean value)
        Sets whether to vary the colors of the shapes.
        Parameters:
        value - true if to vary
      • getVaryShapeColor

        public boolean getVaryShapeColor()
        Returns whether to vary the colors of the shapes.
        Returns:
        true if to vary
      • varyShapeColorTipText

        public String varyShapeColorTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setShapeColorProvider

        public void setShapeColorProvider​(ColorProvider value)
        Sets the color provider to use when varying the shape colors.
        Parameters:
        value - the provider
      • getShapeColorProvider

        public ColorProvider getShapeColorProvider()
        Returns the color provider to use when varying the shape colors.
        Returns:
        the provider
      • shapeColorProviderTipText

        public String shapeColorProviderTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setFinder

        public void setFinder​(ObjectFinder value)
        Sets the finder to use for locating the objects.
        Parameters:
        value - the finder
      • getFinder

        public ObjectFinder getFinder()
        Returns the finder to use for locating the objects.
        Returns:
        the finder
      • finderTipText

        public String finderTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setBoundingBoxFallbackRatio

        public void setBoundingBoxFallbackRatio​(double value)
        Sets the ratio between shape area over bbox area. If below the bbox is used instead of the polygon.
        Specified by:
        setBoundingBoxFallbackRatio in interface BoundingBoxFallbackSupporter
        Parameters:
        value - the ratio
      • getBoundingBoxFallbackRatio

        public double getBoundingBoxFallbackRatio()
        Returns the ratio between shape area over bbox area. If below the bbox is used instead of the polygon.
        Specified by:
        getBoundingBoxFallbackRatio in interface BoundingBoxFallbackSupporter
        Returns:
        the ratio
      • setOverlapDetection

        public void setOverlapDetection​(ObjectOverlap value)
        Sets the algorithm for determining the overlapping objects
        Parameters:
        value - the algorithm
      • getOverlapDetection

        public ObjectOverlap getOverlapDetection()
        Returns the algorithm for determining the overlapping objects.
        Returns:
        the algorithm
      • overlapDetectionTipText

        public String overlapDetectionTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setOverlapRemoval

        public void setOverlapRemoval​(OverlappingObjectRemoval value)
        Sets the algorithm for determining the overlapping objects
        Parameters:
        value - the algorithm
      • getOverlapRemoval

        public OverlappingObjectRemoval getOverlapRemoval()
        Returns the algorithm for determining the overlapping objects.
        Returns:
        the algorithm
      • overlapRemovalTipText

        public String overlapRemovalTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setUseAlternativeLocation

        public void setUseAlternativeLocation​(boolean value)
        Sets whether to use an alternative location for the reports.
        Parameters:
        value - true if to use
      • getUseAlternativeLocation

        public boolean getUseAlternativeLocation()
        Returns whether to use an alternative location for the reports.
        Returns:
        true if to use
      • useAlternativeLocationTipText

        public String useAlternativeLocationTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setAlternativeLocation

        public void setAlternativeLocation​(PlaceholderDirectory value)
        Sets the alternative location to use for the reports.
        Parameters:
        value - the location
      • getAlternativeLocation

        public PlaceholderDirectory getAlternativeLocation()
        Returns the alternative location to use for the reports.
        Returns:
        the location
      • alternativeLocationTipText

        public String alternativeLocationTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setShowObjectPanel

        public void setShowObjectPanel​(boolean value)
        Sets whether to show the panel with the located panels.
        Parameters:
        value - true if to show
      • getShowObjectPanel

        public boolean getShowObjectPanel()
        Returns whether to show the panel with the located objects.
        Returns:
        true if to show
      • showObjectPanelTipText

        public String showObjectPanelTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getExtensions

        public String[] getExtensions()
        Returns the list of extensions (without dot) that this handler can take care of.
        Specified by:
        getExtensions in interface ContentHandler
        Returns:
        the list of extensions (no dot)
      • filterReport

        protected Report filterReport​(Report report)
        Filters the objects in the report, if necessary.
        Parameters:
        report - the report to filter
        Returns:
        the filtered report (copy, in case filtering occurred)
      • loadReport

        protected Report loadReport​(ObjectLocationsFromSpreadSheet.CombinedPanel panel,
                                    File file)
        Loads the report associated with the image.
        Parameters:
        panel - the context panel
        file - the image file
        Returns:
        the report, null if failed to load report data or none available