gusucode.com > vision工具箱matlab源码程序 > vision/+vision/en/CornerDetector.m

    classdef CornerDetector< matlab.System
%CornerDetector Find corner features
%   -----------------------------------------------------------------------
%   The vision.CornerDetector will be removed in a future release. Use the
%   detectHarrisFeatures, detectMinEigenFeatures, detectBRISKFeatures, or
%   detectFastFeatures function with equivalent functionality instead.
%   -----------------------------------------------------------------------
%
%   The CornerDetector object finds corners in a grayscale image. It
%   returns corner locations as a matrix of [x y] coordinates. The object
%   provides Harris, Minimum Eigenvalue and FAST corner detectors.
%    
%   cornerDetector = vision.CornerDetector returns a corner detector System
%   object, cornerDetector, that finds corners in an image using Harris corner
%   detector.
%
%   cornerDetector = vision.CornerDetector(..., 'Name', 'Value') configures 
%   the corner detector properties, specified as one or more name-value 
%   pair arguments. Unspecified properties have default values.
%
%   Step method syntax:
%
%   LOC = step(cornerDetector, I) finds corners in grayscale image I.
%   LOC is an M-by-2 matrix of [x y] corner coordinates, where M is the 
%   number of detected corners. M can be less than or equal to a value
%   set in MaximumCornerCount property.
%
%   METRIC = step(cornerDetector, I) returns a matrix with corner metric values,
%   METRIC, when the MetricMatrixOutputPort property is true. METRIC
%   represents corner strength and has the same size as I.    
%
%   [LOC, METRIC] = step(cornerDetector, I) returns the locations of the
%   corners in LOC and the corner metric matrix in METRIC, when both the 
%   CornerLocationOutputPort and MetricMatrixOutputPort properties are true.
%
%   System objects may be called directly like a function instead of using
%   the step method. For example, y = step(obj, x) and y = obj(x) are
%   equivalent.
%
%   CornerDetector methods:
%
%   step     - See above description for use of this method
%   release  - Allow property value and input characteristics changes
%   clone    - Create corner detector object with same property values
%   isLocked - Locked status (logical)
%
%   CornerDetector properties:
%
%   Method                      - Method to find corner values
%   Sensitivity                 - Sensitivity factor to detect sharp corners
%   SmoothingFilterCoefficients - Coefficients of smoothing filter
%   IntensityThreshold          - Intensity comparison threshold
%   MaximumAngleThreshold       - Maximum angle in degrees to be considered
%                                 corner
%   CornerLocationOutputPort    - Enables output of the corner location
%   MetricMatrixOutputPort      - Enables output of the metric matrix
%   MaximumCornerCount          - Maximum number of corners to detect
%   CornerThreshold             - Minimum metric value that indicates a corner
%   NeighborhoodSize            - Size of suppressed region around detected
%                                 corner
%
%   This System object supports fixed-point operations. For more
%   information, type vision.CornerDetector.helpFixedPoint.
%
%   Example
%   -------
%   % Detect corners in an input image.
%   I = im2single(imread('circuit.tif'));
%   % select FAST algorithm by Rosten & Drummond
%   cornerDetector = vision.CornerDetector( ... 
%            'Method', 'Local intensity comparison (Rosten & Drummond)');
% 
%   pts = step(cornerDetector, I); 
%   % note that color data range must match the data range of image I
%   color = [1 0 0]; % [red, green, blue]
%   % insert color marker
%   J = insertMarker(I, pts, 'Color', 'red');
%   imshow(J); title ('Corners detected in a grayscale image'); 
%
%   See also detectHarrisFeatures, detectMinEigenFeatures,
%       detectBRISKFeatures, detectFASTFeatures.

 
%   Copyright 2003-2016 The MathWorks, Inc.

    methods
        function out=CornerDetector
            %CornerDetector Find corner features
            %   -----------------------------------------------------------------------
            %   The vision.CornerDetector will be removed in a future release. Use the
            %   detectHarrisFeatures, detectMinEigenFeatures, detectBRISKFeatures, or
            %   detectFastFeatures function with equivalent functionality instead.
            %   -----------------------------------------------------------------------
            %
            %   The CornerDetector object finds corners in a grayscale image. It
            %   returns corner locations as a matrix of [x y] coordinates. The object
            %   provides Harris, Minimum Eigenvalue and FAST corner detectors.
            %    
            %   cornerDetector = vision.CornerDetector returns a corner detector System
            %   object, cornerDetector, that finds corners in an image using Harris corner
            %   detector.
            %
            %   cornerDetector = vision.CornerDetector(..., 'Name', 'Value') configures 
            %   the corner detector properties, specified as one or more name-value 
            %   pair arguments. Unspecified properties have default values.
            %
            %   Step method syntax:
            %
            %   LOC = step(cornerDetector, I) finds corners in grayscale image I.
            %   LOC is an M-by-2 matrix of [x y] corner coordinates, where M is the 
            %   number of detected corners. M can be less than or equal to a value
            %   set in MaximumCornerCount property.
            %
            %   METRIC = step(cornerDetector, I) returns a matrix with corner metric values,
            %   METRIC, when the MetricMatrixOutputPort property is true. METRIC
            %   represents corner strength and has the same size as I.    
            %
            %   [LOC, METRIC] = step(cornerDetector, I) returns the locations of the
            %   corners in LOC and the corner metric matrix in METRIC, when both the 
            %   CornerLocationOutputPort and MetricMatrixOutputPort properties are true.
            %
            %   System objects may be called directly like a function instead of using
            %   the step method. For example, y = step(obj, x) and y = obj(x) are
            %   equivalent.
            %
            %   CornerDetector methods:
            %
            %   step     - See above description for use of this method
            %   release  - Allow property value and input characteristics changes
            %   clone    - Create corner detector object with same property values
            %   isLocked - Locked status (logical)
            %
            %   CornerDetector properties:
            %
            %   Method                      - Method to find corner values
            %   Sensitivity                 - Sensitivity factor to detect sharp corners
            %   SmoothingFilterCoefficients - Coefficients of smoothing filter
            %   IntensityThreshold          - Intensity comparison threshold
            %   MaximumAngleThreshold       - Maximum angle in degrees to be considered
            %                                 corner
            %   CornerLocationOutputPort    - Enables output of the corner location
            %   MetricMatrixOutputPort      - Enables output of the metric matrix
            %   MaximumCornerCount          - Maximum number of corners to detect
            %   CornerThreshold             - Minimum metric value that indicates a corner
            %   NeighborhoodSize            - Size of suppressed region around detected
            %                                 corner
            %
            %   This System object supports fixed-point operations. For more
            %   information, type vision.CornerDetector.helpFixedPoint.
            %
            %   Example
            %   -------
            %   % Detect corners in an input image.
            %   I = im2single(imread('circuit.tif'));
            %   % select FAST algorithm by Rosten & Drummond
            %   cornerDetector = vision.CornerDetector( ... 
            %            'Method', 'Local intensity comparison (Rosten & Drummond)');
            % 
            %   pts = step(cornerDetector, I); 
            %   % note that color data range must match the data range of image I
            %   color = [1 0 0]; % [red, green, blue]
            %   % insert color marker
            %   J = insertMarker(I, pts, 'Color', 'red');
            %   imshow(J); title ('Corners detected in a grayscale image'); 
            %
            %   See also detectHarrisFeatures, detectMinEigenFeatures,
            %       detectBRISKFeatures, detectFASTFeatures.
        end

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

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

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

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

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

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

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

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

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

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

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

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

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

        function validatePropertiesImpl(in) %#ok<MANU>
            % Check that at least one of the outputs is enabled
        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
        %   input' | {'Custom'}].
        AccumulatorDataType;

        %CoefficientsDataType Coefficients word- and fraction-length designations
        %   Specify the coefficients fixed-point data type as one of ['Same word
        %   length as input' | {'Custom'}]. This property is applicable when the
        %   Method property is not 'Local intensity comparison (Rosten &
        %   Drummond)'.
        CoefficientsDataType;

        %CornerLocationOutputPort Enables output of the corner location
        %   Set this property to true to output the corner location after corner
        %   detection. Both this property and MetricMatrixOutputPort property
        %   cannot be false at the same time. The default value for this property
        %   is true.
        CornerLocationOutputPort;

        %CornerThreshold Minimum metric value that indicates a corner
        %   Specify the minimum metric value that indicates a corner as a
        %   positive scalar number. The default value of this property is 0.0005.
        %   This property is applicable when the CornerLocationOutputPort
        %   property is true. This property is tunable.
        CornerThreshold;

        %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
        %   AccumulatorDataType property is 'Custom'. The default value of this
        %   property is numerictype([],32,0).
        %
        %   See also numerictype.
        CustomAccumulatorDataType;

        %CustomCoefficientsDataType Coefficients word and fraction lengths 
        %   Specify the coefficients fixed-point type as an auto-signed
        %   numerictype object. This property is applicable when the Method
        %   property is not 'Local intensity comparison (Rosten & Drummond)' and
        %   the CoefficientsDataType property is 'Custom'. The default value of
        %   this property is numerictype([],16).
        %
        %   See also numerictype.
        CustomCoefficientsDataType;

        %CustomMemoryDataType Memory word and fraction lengths
        %   Specify the memory fixed-point type as an auto-signed, scaled
        %   numerictype object. This property is applicable when the Method
        %   property is not 'Local intensity comparison (Rosten & Drummond)' and
        %   the MemoryDataType property is 'Custom'. The default value of this
        %   property is numerictype([],32,0).
        %
        %   See also numerictype.
        CustomMemoryDataType;

        %CustomMetricOutputDataType Metric output word and fraction lengths
        %   Specify the metric output fixed-point type as an auto-signed, scaled
        %   numerictype object. This property is applicable when the
        %   MetricOutputDataType property is 'Custom'. The default value of this
        %   property is numerictype([],32,0).
        %
        %   See also numerictype.
        CustomMetricOutputDataType;

        %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 Method
        %   property is not 'Local intensity comparison (Rosten & Drummond)' and
        %   the ProductDataType property is 'Custom'. The default value of this
        %   property is numerictype([],32,0).
        %
        %   See also numerictype.
        CustomProductDataType;

        %IntensityThreshold Intensity comparison threshold
        %   Specify the intensity threshold value used to find valid bright or
        %   dark surrounding pixels, as a positive scalar. The default value of
        %   this property is 0.1. This property is applicable when the Method
        %   property is 'Local intensity comparison (Rosten & Drummond)'. This
        %   property is tunable.
        IntensityThreshold;

        %MaximumAngleThreshold Maximum angle in degrees to be considered corner
        %   Specify the maximum angle in degrees to indicate a corner as one of
        %   ['22.5' | '45.0' | '67.5' | '90.0' | '112.5' | '135.0' | {'157.5'}].
        %   This property is applicable when the Method property is 'Local
        %   intensity comparison (Rosten & Drummond)'.
        MaximumAngleThreshold;

        %MaximumCornerCount Maximum number of corners to detect
        %   Specify the maximum number of corners to detect as a positive scalar
        %   integer value. The default value of this property is 200. This
        %   property is applicable when the CornerLocationOutputPort property is
        %   true.
        MaximumCornerCount;

        %MemoryDataType Memory word- and fraction-length designations
        %   Specify the memory fixed-point data type as one of ['Same as input' |
        %   {'Custom'}]. This property is applicable when the Method property
        %   is not 'Local intensity comparison (Rosten & Drummond)'.
        MemoryDataType;

        %Method Method to find corner values
        %   Specify the method to find the corner values as one of [{'Harris
        %   corner detection (Harris & Stephens)'} | 'Minimum eigenvalue (Shi &
        %   Tomasi)' | 'Local intensity comparison (Rosten & Drummond)'].
        Method;

        %MetricMatrixOutputPort Enables output of the metric matrix
        %   Set this property to true to output the metric matrix after corner
        %   detection. Both this property and CornerLocationOutputPort property
        %   cannot be false at the same time. The default value for this property
        %   is false.
        MetricMatrixOutputPort;

        %MetricOutputDataType Metric output word- and fraction-length designations
        %   Specify the metric output fixed-point data type as one of [{'Same as
        %   accumulator'} | 'Same as input' | 'Custom'].
        MetricOutputDataType;

        %NeighborhoodSize Size of suppressed region around detected corner
        %   Specify the size of the neighborhood around the corner metric value
        %   over which the object zeros out the values, as a two element vector
        %   of positive odd integers, [r c]. Here, r is the number of rows in the
        %   neighborhood and c is the number of columns. The default value of
        %   this property is [11 11]. This property is applicable when the
        %   CornerLocationOutputPort property is true.
        NeighborhoodSize;

        %OverflowAction Overflow action for fixed-point operations
        %   Specify the overflow action as one of [{'Wrap'} | 'Saturate'].
        OverflowAction;

        %ProductDataType Product word- and fraction-length designations
        %   Specify the product fixed-point data type as one of ['Same as input'
        %   | {'Custom'}]. This property is applicable when the Method property
        %   is not 'Local intensity comparison (Rosten & Drummond)'.
        ProductDataType;

        %RoundingMethod Rounding method for fixed-point operations
        %   Specify the rounding method as one of ['Ceiling' | 'Convergent' |
        %   {'Floor'} | 'Nearest' | 'Round' | 'Simplest' | 'Zero'].
        RoundingMethod;

        %Sensitivity Sensitivity factor to detect sharp corners
        %   Specify the sensitivity factor, k, used in the Harris corner
        %   detection algorithm as a scalar numeric value, such that 0 < k < 0.25.
        %   The smaller the value of k, the more likely it is that the algorithm
        %   will detect sharp corners. The default value of this property is
        %   0.04. This property is applicable when the Method property is 'Harris
        %   corner detection (Harris & Stephens)'. This property is tunable.
        Sensitivity;

        %SmoothingFilterCoefficients Coefficients of smoothing filter
        %   Specify the filter coefficients for the separable smoothing filter as
        %   a real-valued numeric vector. The vector must have an odd number of
        %   elements and a length of at least 3. The default value of this
        %   property is the output of fspecial('gaussian', [1 5], 1.5). For more
        %   information, type help fspecial. This property is applicable when the
        %   Method property is either 'Harris corner detection (Harris &
        %   Stephens)' or 'Minimum eigenvalue (Shi & Tomasi)'.
        %
        %   See also help fspecial.
        SmoothingFilterCoefficients;

    end
end