drawImageAxesLabels

Отобразите местоположение и ориентацию меток осей

Описание

пример

[originLabel,xLabel,yLabel] = drawImageAxesLabels(detectorObj,imagePoints) отображает ориентацию и местоположение источника originLabel и X - и Y - подписи по осям xLabel и yLabel из кругового шаблона сетки, обнаруженного в изображениях, представленных в Camera Calibrator и приложениях Stereo Camera Calibrator.

Если вы не реализуете эту функцию, или если возвращенные значения пусты, то функция не представляет источник или метки осей в изображении.

Примеры

свернуть все

Используйте drawImageAxesLabels функция, чтобы идентифицировать и пометить ориентацию и местоположение для источника и X - и Y - подписи по осям обнаруженной сетки шаблона в изображении. Например:

Labeled checkerboard showing origina and x- and y- directions.

Используйте этот шаблон функции, который включает использование drawImageAxesLabels возразите функции, чтобы вычислить ориентацию и местоположение источника обнаруженного калибровочного шаблона в изображении. Функция не использует X - и Y - метки. Функция включает и программируемые рабочие процессы и рабочие процессы приложения для обнаружения точек.

function [originLabel,xLabel,yLabel] = drawImageAxesLabels(this,imagePoints) 
    
    numBoardRows = this.BoardSize(1) - 1;
    numBoardCols = this.BoardSize(2) - 1;
    
    % Reshape checkerboard corners to boardSize-shaped array
    boardCoordsX = reshape(imagePoints(:,1),[numBoardRows numBoardCols]);
    boardCoordsY = reshape(imagePoints(:,2),[numBoardRows numBoardCols]);
    boardCoords = cat(3,boardCoordsX,boardCoordsY);
    
    % Origin label (check if the origin location is inside the image)
    if ~isnan(boardCoordsX(1,1))
        p1 = boardCoords(1,1,:);
        
        refPointIdx = find(~isnan(boardCoordsX(:,1)),2);
        p2 = boardCoords(refPointIdx(2),1,:);
        
        refPointIdx = find(~isnan(boardCoordsX(1,:)),2);
        p3 = boardCoords(1,refPointIdx(2),:);
        
        [loc, theta] = getAxesLabelPosition(p1,p2,p3);
        
        originLabel.Location = loc;
        originLabel.Orientation = theta;
    else
        originLabel = struct;
    end
    
    % X-axis and Y-axis labels
    xLabel = struct('Orientation',[],'Location',[]);
    yLabel = struct('Orientation',[],'Location',[]);
    
    %--------------------------------------------------------------
    % p1+v
    %  \
    %   \     v1
    %    p1 ------ p2
    %    |
    % v2 |
    %    |
    %    p3
    function [loc, theta] = getAxesLabelPosition(p1,p2,p3)
        v1 = p3 - p1;
        theta = -atan2d(v1(2),v1(1));
        
        v2 = p2 - p1;
        v = -v1 - v2;
        d = hypot(v(1),v(2));
        minDist = 40;
        if d < minDist
            v = (v/d) * minDist;
        end
        loc = p1 + v;
    end
end

Calibration pattern with labeled origin

Входные параметры

свернуть все

Объект Detector в виде одного или vision.calibration.PatternDetector стерео объект.

Отобразите координаты обнаруженной круговой сетки, возвращенной как M-by-2 массив x, координат y.

Выходные аргументы

свернуть все

Ориентация и местоположение метки источника шаблона, возвращенной как структура с двумя полями. Orientation поле содержит вращение метки источника во фрейме изображения, заданном в градусах. Location поле содержит x, местоположение y метки источника во фрейме изображения.

Ориентация и местоположение X - подпись по осям, возвращенная как структура с двумя полями. Orientation поле содержит вращение подписи по осям во фрейме изображения, заданном в градусах. Location поле содержит x, местоположение y подписи по осям во фрейме изображения.

Ориентация и местоположение Y - подпись по осям, возвращенная как структура с двумя полями. Orientation поле содержит вращение подписи по осям во фрейме изображения, заданном в градусах. Location поле содержит x, местоположение y подписи по осям во фрейме изображения.

Введенный в R2021b
Для просмотра документации необходимо авторизоваться на сайте