classdef MarkerInserter
%MarkerInserter Draw image markers
%   HMARKERINSERTER = vision.MarkerInserter returns a marker inserter
%   System object, HMARKERINSERTER, that draws predefined markers, such as
%   circles, x-marks, plus signs, stars, or squares on an images by
%   overwriting pixel values.
%
%   HMARKERINSERTER = vision.MarkerInserter('PropertyName', PropertyValue,
%   ...) returns a marker inserter object, HMARKERINSERTER, with each
%   specified property set to the specified value.
%
%   Step method syntax:
%
%   Y = step(HMARKERINSERTER, I, PTS) draws the specified marker on the
%   input image I at the locations specified by PTS. The PTS input is an
%   M-by-2 matrix of x and y pairs, where M is the total number of markers
%   and each x and y pair defines a marker's center. The markers are
%   embedded on the output image Y.
%
%   Y = step(HMARKERINSERTER, I, PTS, ROI) draws the specified marker only
%   in a rectangular area defined by the ROI when the ROIInputPort property
%   is true. The ROI input is of the form [x y width height], where x and y
%   specify the upper-left corner of the rectangular area.
%
%   Y = step(HMARKERINSERTER, I, PTS, ..., CLR) uses the border or fill
%   color CLR to draw the border or fill the specified marker, when the
%   BorderColorSource property or the FillColorSource property is 'Input
%   port'.
%
%   MarkerInserter methods:
%
%   step     - See above description for use of this method
%   release  - Allow property value and input characteristics changes
%   clone    - Create marker inserter object with same property values
%   isLocked - Locked status (logical)
%
%   MarkerInserter properties:
%
%   Shape             - Shape of marker(s) to draw
%   Size              - Size of marker
%   Fill              - Enables filling marker
%   BorderColorSource - Source of border color
%   BorderColor       - Border color of marker
%   CustomBorderColor - Intensity or color value for marker's border
%   FillColorSource   - Source of fill color
%   FillColor         - Fill color of marker
%   CustomFillColor   - Intensity or color value for marker's interior
%   Opacity           - Opacity of shading inside marker
%   ROIInputPort      - Enables defining a region of interest to draw
%                       marker
%   Antialiasing      - Enables performing smoothing algorithm on marker
%
%   This System object supports fixed-point operations. For more
%   information, type vision.MarkerInserter.helpFixedPoint.
%
%   % EXAMPLE: Draw a few plus signs on the input image
%       hmarkerinserter = vision.MarkerInserter;
%       hmarkerinserter.Shape = 'Plus';
%       I = im2double(imread('cameraman.tif'));
%       Pts = [10 10; 20 20; 30 30];
%       y = step(hmarkerinserter, I, Pts);
%       imshow(y);
%
%   See also vision.ShapeInserter, vision.MarkerInserter.helpFixedPoint.

 
%   Copyright 2008-2010 The MathWorks, Inc.

    methods
        function out=MarkerInserter
            %MarkerInserter Draw image markers
            %   HMARKERINSERTER = vision.MarkerInserter returns a marker inserter
            %   System object, HMARKERINSERTER, that draws predefined markers, such as
            %   circles, x-marks, plus signs, stars, or squares on an images by
            %   overwriting pixel values.
            %
            %   HMARKERINSERTER = vision.MarkerInserter('PropertyName', PropertyValue,
            %   ...) returns a marker inserter object, HMARKERINSERTER, with each
            %   specified property set to the specified value.
            %
            %   Step method syntax:
            %
            %   Y = step(HMARKERINSERTER, I, PTS) draws the specified marker on the
            %   input image I at the locations specified by PTS. The PTS input is an
            %   M-by-2 matrix of x and y pairs, where M is the total number of markers
            %   and each x and y pair defines a marker's center. The markers are
            %   embedded on the output image Y.
            %
            %   Y = step(HMARKERINSERTER, I, PTS, ROI) draws the specified marker only
            %   in a rectangular area defined by the ROI when the ROIInputPort property
            %   is true. The ROI input is of the form [x y width height], where x and y
            %   specify the upper-left corner of the rectangular area.
            %
            %   Y = step(HMARKERINSERTER, I, PTS, ..., CLR) uses the border or fill
            %   color CLR to draw the border or fill the specified marker, when the
            %   BorderColorSource property or the FillColorSource property is 'Input
            %   port'.
            %
            %   MarkerInserter methods:
            %
            %   step     - See above description for use of this method
            %   release  - Allow property value and input characteristics changes
            %   clone    - Create marker inserter object with same property values
            %   isLocked - Locked status (logical)
            %
            %   MarkerInserter properties:
            %
            %   Shape             - Shape of marker(s) to draw
            %   Size              - Size of marker
            %   Fill              - Enables filling marker
            %   BorderColorSource - Source of border color
            %   BorderColor       - Border color of marker
            %   CustomBorderColor - Intensity or color value for marker's border
            %   FillColorSource   - Source of fill color
            %   FillColor         - Fill color of marker
            %   CustomFillColor   - Intensity or color value for marker's interior
            %   Opacity           - Opacity of shading inside marker
            %   ROIInputPort      - Enables defining a region of interest to draw
            %                       marker
            %   Antialiasing      - Enables performing smoothing algorithm on marker
            %
            %   This System object supports fixed-point operations. For more
            %   information, type vision.MarkerInserter.helpFixedPoint.
            %
            %   % EXAMPLE: Draw a few plus signs on the input image
            %       hmarkerinserter = vision.MarkerInserter;
            %       hmarkerinserter.Shape = 'Plus';
            %       I = im2double(imread('cameraman.tif'));
            %       Pts = [10 10; 20 20; 30 30];
            %       y = step(hmarkerinserter, I, Pts);
            %       imshow(y);
            %
            %   See also vision.ShapeInserter, vision.MarkerInserter.helpFixedPoint.
        end

        function helpFixedPoint(in) %#ok<MANU>
            %helpFixedPoint Display vision.MarkerInserter System object 
            %               fixed-point information
            %   vision.MarkerInserter.helpFixedPoint displays information about
            %   fixed-point properties and operations of the vision.MarkerInserter
            %   System object.
        end

        function isInactivePropertyImpl(in) %#ok<MANU>
        end

        function setPortDataTypeConnections(in) %#ok<MANU>
        end

    end
    methods (Abstract)
    end
    properties
        %AccumulatorDataType Accumulator word- and fraction-length designations
        %   Specify the accumulator fixed-point data type as one of [{'Same as
        %   product'} | 'Same as first input' | 'Custom']. This property is
        %   applicable when the Fill property is true and/or the Antialiasing
        %   property is true.
        AccumulatorDataType;

        %Antialiasing Enables performing smoothing algorithm on marker
        %   Set this property to true to perform a smoothing algorithm on the
        %   marker. This property is applicable when the Shape property is not
        %   'Square' or 'Plus'. The default value of this property is false.
        Antialiasing;

        %BorderColor Border color of marker
        %   Specify the border color of the marker as one of [{'Black'} |
        %   'White' | 'Custom']. If this property is set to 'Custom', the
        %   CustomBorderColor property is used to specify the value. This
        %   property is applicable when the BorderColorSource property is
        %   enabled and set to 'Property'.
        BorderColor;

        %BorderColorSource Source of border color
        %   Specify how the marker's border color is provided as one of ['Input
        %   port' | {'Property'}]. This property is applicable either when the
        %   Shape property is 'X-mark', 'Plus', or 'Star', or when the Shape
        %   property is 'Circle' or 'Square', and the Fill property is false.
        %   When BorderColorSource is set to 'Input port', a border color
        %   vector must be provided as an input to the System object's step
        %   method.
        BorderColorSource;

        %CustomAccumulatorDataType Accumulator word and fraction lengths
        %   Specify the accumulator fixed-point type as an auto-signed, scaled
        %   numerictype object. This property is applicable when the Fill
        %   property is true and/or the Antialiasing property is true, and the
        %   AccumulatorDataType property is 'Custom'. The default value of this
        %   property is numerictype([],32,14);
        %
        %   See also numerictype.
        CustomAccumulatorDataType;

        %CustomBorderColor Intensity or color value for marker's border
        %   Specify an intensity or color value for the marker's border. If the
        %   input is an intensity image, this property can be set to a scalar
        %   intensity value for one marker or R-element vector where R is the
        %   number of markers. If the input is a color image, this property can
        %   be set to a P-element vector where P is the number of color planes
        %   or an R-by-P matrix where R is the number of markers and P is the
        %   number of color planes. This property is applicable when the
        %   BorderColor property is 'Custom'. The default value of this property
        %   is [200 120 50].
        CustomBorderColor;

        %CustomFillColor Intensity or color value for marker's interior
        %   Specify an intensity or color value to fill the marker. If the
        %   input is an intensity image, this property can be set to a scalar
        %   intensity value for one marker or R-element vector where R is the
        %   number of markers. If the input is a color image, this property can
        %   be set to a P-element vector where P is the number of color planes
        %   or an R-by-P matrix where R is the number of markers and P is the
        %   number of color planes. This property is applicable when the
        %   FillColor property is 'Custom'. The default value of this property
        %   is [200 120 50].
        CustomFillColor;

        %CustomOpacityDataType Opacity word length
        %   Specify the opacity fixed-point type as an auto-signed, unscaled
        %   numerictype object. This property is applicable when the Fill
        %   property is true and the OpacityDataType property is 'Custom'. The
        %   default value of this property is numerictype([],16);
        %
        %   See also numerictype.
        CustomOpacityDataType;

        %CustomProductDataType Product word and fraction lengths
        %   Specify the product fixed-point type as an auto-signed, scaled
        %   numerictype object. This property is applicable when the Fill
        %   property is true and/or the Antialiasing property is true, and the
        %   ProductDataType property is 'Custom'. The default value of this
        %   property is numerictype([],32,14);
        %
        %   See also numerictype.
        CustomProductDataType;

        %Fill Enables filling marker
        %   Set this property to true to fill the marker with an intensity
        %   value or a color. This property is applicable when the Shape
        %   property is 'Circle' or 'Square'. The default value of this
        %   property is false.
        Fill;

        %FillColor Fill color of marker
        %   Specify the color to fill the marker as one of [{'Black'} | 'White'
        %   | 'Custom' |]. If this property is set to 'Custom', the
        %   CustomFillColor property is used to specify the value. This
        %   property is applicable when the FillColorSource property is enabled
        %   and set to 'Property'.
        FillColor;

        %FillColorSource Source of fill color
        %   Specify how the marker's fill color is provided as one of ['Input
        %   port' | {'Property'}]. This property is applicable when the Shape
        %   property is 'Circle' or 'Square', and the Fill property is true.
        %   When this property is set to 'Input port', a fill color vector must
        %   be provided as an input to the System object's step method.
        FillColorSource;

        %Opacity Opacity of shading inside marker
        %   Specify the opacity of the shading inside the marker by a scalar
        %   value between 0 and 1, where 0 is transparent and 1 is opaque. The
        %   default value of this property is 0.6. This property is tunable. 
        Opacity;

        %OpacityDataType Opacity word-length designations
        %   Specify the opacity fixed-point data type as one of ['Same word
        %   length as input' | {'Custom'}]. This property is applicable when
        %   the Fill property is true.
        OpacityDataType;

        %OverflowAction Overflow action for fixed-point operations
        %   Specify the overflow action as one of [{'Wrap'} | 'Saturate']. This
        %   property is applicable when the Fill property is true and/or the
        %   Antialiasing property is true.
        OverflowAction;

        %ProductDataType Product word- and fraction-length designations
        %   Specify the product fixed-point data type as one of ['Same as first
        %   input' | {'Custom'}]. This property is applicable when the Fill
        %   property is true and/or the Antialiasing property is true.
        ProductDataType;

        %ROIInputPort Enables defining a region of interest to draw marker
        %   Set this property to true to specify a region of interest (ROI) on
        %   the input image through an input to the step method. If the
        %   property is set to false, the object uses the entire image. The
        %   default value of this property is false.
        ROIInputPort;

        %RoundingMethod  Rounding method for fixed-point operations
        %   Specify the rounding method as one of ['Ceiling' | 'Convergent' |
        %   {'Floor'} | 'Nearest'| 'Round' | 'Simplest' | 'Zero']. This
        %   property is applicable when the Fill property is true and/or the
        %   Antialiasing property is true.
        RoundingMethod;

        %Shape Shape of marker(s) to draw
        %   Specify the type of marker(s) to draw as one of [{'Circle' |
        %   'X-mark' | 'Plus' | 'Star' | 'Square'].
        Shape;

        %Size Size of marker
        %   Specify the size of the marker, in pixels, as a scalar value
        %   greater than or equal to 1. The default value of this property is
        %   3. This property is tunable. 
        Size;

    end
end
