Camera looking down the negative Z-Axis

11 Ansichten (letzte 30 Tage)
Alex Ruiz
Alex Ruiz am 3 Nov. 2019
Beantwortet: George Abrahams am 10 Feb. 2024
Hello,
I have been trying to use the PlotCamera code to plot a camera using the world coordinate system but it currently only plots in the camera coordinate system.
I essentially want to produce this:
The Camera is looking down the negative Z Direction.
It is commonly used in game developement and in languages like openGL.
I have tried for a long time but I think there is just a limitation in the code since when you pass it the proper inputs it turns out errors.
Please let me know,
Thank you.

Antworten (2)

Qu Cao
Qu Cao am 7 Nov. 2019
Bearbeitet: Qu Cao am 7 Nov. 2019
Hi Alex,
In Computer Vision Toolbox we use the y-down/z-forward camera coordinate systems:
You can convert your coordinates [x1, y1, z1] to the one used in CVT [x2, y2, z2] as follows:
x2 = x1;
y2 =-y1;
z2 =-z1;
Thanks,
Qu
  1 Kommentar
Alex Ruiz
Alex Ruiz am 8 Nov. 2019
Hello, I appreciate the responce!
Im using this for a robust application using multiple cameras in different quadrants. Adding the negative sign to the code isnt the best practice, since this code is the ground truth for another project. I am relaying on camera matrix/oriention matrix/translation vectors for position and rendering.
is there any other way?
I have found this to be a huge road block for my research field.

Melden Sie sich an, um zu kommentieren.


George Abrahams
George Abrahams am 10 Feb. 2024
Hi @Alex Ruiz. This is equivalent to an 180 degree rotation around the camera's local X-axis. The position of the camera won't be affected.
If you're using quaternions to store the rotations, you can do it like this. Note that in this example, randrot is from the Navigation Toolbox, while the quaternion class is available in multiple different toolboxes.
% Generate 10 random quaternion rotations, as sample data.
cameraRotations = quaternion( randrot( 10, 1 ) )
% This quaternion represents an 180 degree rotation around the X-axis.
basisRotation = quaternion( [0 1 0 0] );
% Perform the rotation in each camera's local coordinate system.
cameraRotations = cameraRotations * basisRotation

Kategorien

Mehr zu MATLAB Support Package for USB Webcams finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by