plotCamera

Постройте камеру в 3-D координатах

Описание

пример

cam = plotCamera() создает объект визуализации камеры, представленный в текущей системе координат.

пример

cam = plotCamera(cameraTable) возвращает массив объектов визуализации камеры, представленных в текущей системе координат.

пример

cam = plotCamera(Name,Value) создает объект визуализации камеры со значениями свойств, заданными одним или несколькими Name,Value парные аргументы.

Примеры

свернуть все

Постройте камеру, указывающую вдоль оси Y.

    R = [1     0     0;
         0     0    -1;
         0     1     0];

Обнулите непрозрачность камеры для более быстрой анимации.

    cam = plotCamera('Location',[10 0 20],'Orientation',R,'Opacity',0);

Установите свойства представления.

    grid on
    axis equal
    axis manual

Сделайте пробел достаточно большим для анимации.

    xlim([-15,20]);
    ylim([-15,20]);
    zlim([15,25]);

Вращайте камеру об оси Y камеры.

    for theta = 0:pi/64:10*pi
        T = [cos(theta)  0  sin(theta);
                0        1      0;
             -sin(theta) 0  cos(theta)];
        cam.Orientation = T * R;
        cam.Location = [10 * cos(theta),10 * sin(theta),20];
        drawnow();
    end

Создайте набор калибровочных изображений.

images = imageSet(fullfile(toolboxdir('vision'),'visiondata',...
    'calibration','slr'));

Обнаружьте углы шахматной доски в изображениях.

[imagePoints, boardSize] = detectCheckerboardPoints(images.ImageLocation);

Сгенерируйте мировые координаты углов шахматной доски в центральной шаблоном системе координат с верхним левым углом в (0,0). Установите размер квадратов на 29 мм.

squareSize = 29;
worldPoints = generateCheckerboardPoints(boardSize,squareSize);

Калибруйте камеру.

cameraParams = estimateCameraParameters(imagePoints,worldPoints);

Загрузите изображение в его новом местоположении.

imOrig = imread(fullfile(toolboxdir('vision'),'visiondata',...
    'calibration','slr','image9.jpg'));
figure; imshow(imOrig,'InitialMagnification',50);
title('Input Image');

Не исказите изображение.

im = undistortImage(imOrig,cameraParams);

Найдите ссылочный объект в новом изображении.

[imagePoints,boardSize] = detectCheckerboardPoints(im);

Вычислите новые значения внешних параметров.

[rotationMatrix,translationVector] = extrinsics(imagePoints,...
    worldPoints,cameraParams);

Постройте мировые точки.

figure;
plot3(worldPoints(:,1),worldPoints(:,2),zeros(size(worldPoints, 1),1),'*');
hold on

Отметьте источник.

plot3(0,0,0,'g*');

Вычислите местоположение камеры и ориентацию.

orientation = rotationMatrix';
location = -translationVector * orientation;

Постройте камеру.

cam = plotCamera('Location',location,'Orientation',orientation,'Size',20);

Сделайте z - точка оси вниз.

set(gca,'CameraUpVector',[0 0 -1]);

Установите параметры представления.

camorbit(gca,-110,60,'data',[0 0 1]);
axis equal
grid on

Включите 3-D вращение.

cameratoolbar('SetMode','orbit');

Подпишите оси.

xlabel('X (mm)');
ylabel('Y (mm)');
zlabel('Z (mm)');

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

свернуть все

Свойства объектов визуализации камеры, заданные как таблица. Столбцы содержат Name,Value свойства визуализации камеры возражают за исключением Parent, который задает оси для отображения. Если таблица содержит 'ViewId' столбец, затем представление IDs используется в качестве меток камеры.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Location', [0,0,0]

Координаты местоположения камеры, заданные как разделенная запятой пара, состоящая из 'Location'и трехэлементный вектор. [x, y, z] координаты заданы в модулях данных родительских осей.

Матричная ориентация, заданная как разделенная запятой пара, состоящая из 'Orientation'и 3х3 3-D матрица вращения.

Ширина базы камеры, заданная как разделенная запятой пара, состоящая из 'Size'и скаляр.

Метка Camera, заданная как разделенная запятой пара, состоящая из 'Label'и вектор символов или скаляр строки.

Цвет камеры, заданный как разделенная запятой пара, состоящая из 'Color'и трехэлементный вектор значений RGB в области значений [0 1]. Смотрите colorspec для получения дополнительной информации о том, как задать цвет RGB.

Непрозрачность камеры, заданная как разделенная запятой пара, состоящая из 'Opacity'и скаляр в области значений [0 1].

Видимость камеры, заданная как разделенная запятой пара, состоящая из 'Visible'и логический true или false.

Видимость осей камеры, заданная как разделенная запятой пара, состоящая из 'AxesVisible'и логический true или false.

Функция обратного вызова, заданная как разделенная запятой пара, состоящая из 'ButtonDownFcn'и имя функции, которое выполняется, когда вы кликаете по камере.

Выведите оси, заданные как разделенная запятой пара, состоящая из 'Parent'и указатель осей. Значение по умолчанию установлено в указатель текущей системы координат, gca.

Представленный в R2015a