gusucode.com > vision工具箱matlab源码程序 > vision/+vision/+internal/+inputValidation/checkAbsolutePoses.m

    function outputType = checkAbsolutePoses(absPoses, filename, varname)
%checkAbsolutePoses Check validity of a table containing absolute camera poses
%  outputType = checkAbsolutePoses(absPoses, fileName, varName) checks that
%  the absPoses table contains the required  columns, and that all elements
%  are valid. Also checks that all orientations and locations are of the
%  same class, and returns that class.
%
%  See also triangulateMultiview, bundleAdjustment, viewSet

% Copyright 2015 Mathworks, Inc.

validator = vision.internal.inputValidation.TableValidator;
validator.RequiredVariableNames = {'ViewId', 'Orientation', 'Location'};
validator.MinRows = 2;

validator.ValidationFunctions('ViewId')      = @checkViewId;
validator.ValidationFunctions('Orientation') = @checkOrientation;   
validator.ValidationFunctions('Location')    = @checkLocation;

validator.validate(absPoses, filename, varname);

outputType = class(absPoses{1, 'Orientation'}{1});

for j = 1:size(absPoses, 1)
    R = absPoses{j, 'Orientation'}{1};
    t = absPoses{j, 'Location'}{1};
    if ~isa(R, outputType) || ~isa(t, outputType)
        error(message('vision:absolutePoses:locationsOrientationsSameType'));
    end    
end

    %----------------------------------------------------------------------
    function checkViewId(viewId)
        validateattributes(viewId, {'uint32'}, {'scalar'}, filename, 'ViewId');
    end

    %----------------------------------------------------------------------
    function checkOrientation(R)
        vision.internal.inputValidation.validateRotationMatrix(...
            R, filename, 'Orientation');
    end

    %----------------------------------------------------------------------
    function checkLocation(T)
        vision.internal.inputValidation.validateTranslationVector(...
            T, filename, 'Location');
    end
end