Печать камеры в 3-D координатах
отображает камеру по умолчанию в 3-D координатах в текущих осях. Функция возвращает cam = plotCameracam, a 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-го элемента cam. Нельзя указать значения для 'Parent'. Если таблица содержит 'ViewId' , то идентификаторы ракурсов используются для установки 'Label' значения камер.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Size',0.3 задает базовую ширину камеры как 0.3.'AbsolutePose' - Абсолютная поза камерыrigid3d объектАбсолютная поза камеры в мировой системе координат, определяемая как разделенная запятыми пара, состоящая из 'AbsolutePose' a rigid3d объект.
'Size' - Ширина основания камеры1 (по умолчанию) | положительное вещественное числоБазовая ширина камеры, заданная как разделенная запятыми пара, состоящая из 'Size' и положительное реальное число.
'Label' - Этикетка камеры'' (по умолчанию) | символьный вектор | строковый скалярМетка камеры, указанная как разделенная запятыми пара, состоящая из 'Label«и вектор символов или строковый скаляр».
'Color' - Цвет камеры[1 0 0] (красный) (по умолчанию) | триплет RGBЦвет камеры, указанный как разделенная запятыми пара, состоящая из 'Colorи триплет RGB. Триплет RGB - это трехэлементный вектор строки, элементы которого задают интенсивности красной, зеленой и синей составляющих цвета. Интенсивности должны находиться в диапазоне [0, 1].
'Opacity' - Непрозрачность камеры0.2 (по умолчанию) | скаляр в диапазоне [0,1]Непрозрачность камеры, указанная как разделенная запятыми пара, состоящая из 'Opacity'и скаляр в диапазоне [0,1].
'Visible' - Видимость камерыtrue или 1 (по умолчанию) | false или 0Видимость камеры, указанная как разделенная запятыми пара, состоящая из 'Visible«и числовой или логический» 1 (true) или 0 (false).
'AxesVisible' - Видимость осей камерыfalse или 0 (по умолчанию) | true или 1Видимость осей камеры, заданная как разделенная запятыми пара, состоящая из 'AxesVisible«и числовой или логический» 1 (true) или 0 (false).
'ButtonDownFcn' - Функция обратного вызова'' (по умолчанию) | дескриптор функцииФункция обратного вызова, заданная как разделенная запятыми пара, состоящая из 'ButtonDownFcnи дескриптор функции, который выполняется при щелчке камеры.
'Parent' - Выходные осиaxes ручкаВыходные оси, указанные как разделенная запятыми пара, состоящая из 'Parentи дескриптор осей. По умолчанию plotCamera использует маркер перемещения текущих осей. Для возврата текущих осей используйте gca функция.
cam - Объект визуализации камерыCamera объект | вектор строки Camera объектыОбъект визуализации камеры, возвращаемый в качестве одной из этих опций.
Объект камеры - функция возвращает этот параметр при печати одной камеры. Аргументы пары «имя-значение» или cameraTable входные элементы устанавливают соответствующие Camera свойства объекта.
Вектор строк объектов Camera - функция возвращает этот параметр при печати нескольких камер. n-я строка значений cameraTable ввод задает свойства для n-го Camera объект в этом векторе.
Объекты камеры создаются с помощью vision.graphics.Camera класс.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.