Постройте камеру в 3-D координатах
строит камеру по умолчанию в 3-D координатах в текущей системе координат. Функция возвращает cam = plotCameracam, Camera объект, который содержит свойства нанесенной на график камеры.
графики одна или несколько камер заданы cam = plotCamera(cameraTable)cameraTable.
задает опции с помощью одного или нескольких аргументов пары "имя-значение". Например, cam = plotCamera(Name,Value)'Opacity',0.4 устанавливает непрозрачность нанесенной на график камеры к 0.4.
Аргументы пары "имя-значение" устанавливают связанные свойства нанесенного на график объекта визуализации камеры.
Создайте rigid3d объект.
R = [1 0 0; 0 0 -1;0 1 0]; t = [10 0 20]; pose = rigid3d(R,t);
Постройте камеру с непрозрачностью нуля и абсолютного положения на основе созданного rigid3d объект.
cam = plotCamera('AbsolutePose',pose,'Opacity',0)
cam =
Camera with properties:
Parent: [1x1 Axes]
Size: 1
AbsolutePose: [1x1 rigid3d]
Visible: 1
AxesVisible: 0
ButtonDownFcn: ''
Color: [1 0 0]
Opacity: 0
Label: ''
Установите свойства просмотра для текущей системы координат.
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.AbsolutePose = rigid3d(T * R, [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;
Постройте камеру.
absPose = rigid3d(orientation,location); cam = plotCamera('AbsolutePose',absPose,'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)');

cameraTable — Свойства камер для визуализацииСвойства камер для визуализации в виде таблицы. Каждая строка представляет одну камеру. Каждый заголовок столбцов должен совпадать с заглавной ролью аргумента пары "имя-значение". Значения броска n устанавливают свойства для n th элемент cam. Вы не можете задать значения для 'Parent'. Если таблица содержит 'ViewId' столбец, затем представление IDs используется, чтобы установить 'Label' значения камер.
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Size',0.3 задает ширину базы камеры как 0.3.'AbsolutePose' — Камера абсолютное положениеrigid3d объектКамера абсолютное положение в системе мировой координаты в виде разделенной запятой пары, состоящей из 'AbsolutePose' rigid3d объект.
'Size' — Ширина базы камеры (значение по умолчанию) | положительное вещественное числоШирина базы камеры в виде разделенной запятой пары, состоящей из 'Size' и положительное вещественное число.
'Label' — Метка Camera'' (значение по умолчанию) | вектор символов | строковый скалярМетка Camera в виде разделенной запятой пары, состоящей из 'Label'и вектор символов или строковый скаляр.
'Color' — Цвет камеры (красное) (значение по умолчанию) | триплет RGBЦвет камеры в виде разделенной запятой пары, состоящей из 'Color'и триплет RGB. Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0, 1].
'Opacity' — Непрозрачность камеры (значение по умолчанию) | скаляр в области значений [0,1]Непрозрачность камеры в виде разделенной запятой пары, состоящей из 'Opacity'и скаляр в области значений [0,1].
'Visible' — Видимость камерыtrue или 1 (значение по умолчанию) | false или 0Видимость камеры в виде разделенной запятой пары, состоящей из 'Visible'и числовой или логический 1 TRUE) или 0 ложь).
'AxesVisible' — Видимость осей камерыfalse или 0 (значение по умолчанию) | true или 1Видимость осей камеры в виде разделенной запятой пары, состоящей из 'AxesVisible'и числовой или логический 1 TRUE) или 0 ложь).
'ButtonDownFcn' Функция обратного вызова'' (значение по умолчанию) | указатель на функциюФункция обратного вызова в виде разделенной запятой пары, состоящей из 'ButtonDownFcn'и функция hangle, который выполняется, когда вы кликаете по камере.
'Parent' — Выведите осиaxes указательВыведите оси в виде разделенной запятой пары, состоящей из 'Parent'и указатель осей. По умолчанию, plotCamera использует указатель текущей системы координат. Чтобы возвратить текущую систему координат, используйте gca функция.
cam — Объект визуализации камерыCamera возразите | вектор-строка из Camera объектыОбъект визуализации камеры, возвращенный как одна из этих опций.
Объект Camera — functin возвращает эту опцию при графическом выводе одной камеры. Аргументы пары "имя-значение" или cameraTable введите элементы, устанавливает соответствующий Camera свойства объектов.
Вектор-строка из объектов Камеры — functin возвращает эту опцию при графическом выводе нескольких камер. n th - значения строки cameraTable введите устанавливает свойства для n th Camera объект в этом векторе.
Объекты камеры создаются с помощью vision.graphics.Camera класс.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.