Get current view point (az,el) of a point cloud displayed in using "pcshow" command

10 visualizzazioni (ultimi 30 giorni)
Hi all,
Could you please let me know how to get the current view point of a point cloud which is displayed using "pcshow" command? Basically, I want to rotate a point cloud manually to get the best view and duplicated the same view point in multiple point clouds. I have tried using below solution but no luck.
Cheers.

Risposte (2)

Walter Roberson
Walter Roberson il 2 Feb 2018
pcshow() returns an Axes object, which you can retrieve the View property of to get the AZ, EL pair, or you can call view() with no argument to get the transformation matrix.
  2 Commenti
Randika Vithanage
Randika Vithanage il 15 Feb 2018
Modificato: Randika Vithanage il 15 Feb 2018
Many thanks Walter. I tired by extracting az,el but it doesn't duplicate the manually rotated view. Instead it gives something different. Therefore, could you please let me know how to rotate using the transformation matrix. Cheers.
Walter Roberson
Walter Roberson il 15 Feb 2018
At the moment I do not know how to take the transformation matrix returned by view() with no parameters and use it in a different axes.

Accedi per commentare.


Alireza Manzoori
Alireza Manzoori il 23 Gen 2025
Modificato: Alireza Manzoori il 23 Gen 2025
For anyone still looking for an answer to this question:
I found one way to do this (possibly not optimal, but it works). When I get the CameraPosition and CameraUpVector properties of the axis object, and set these properties on a new set of axes to the same values, it seems to replicate the view.
For example:
figure;
axHandle1 = pcshow(pointCloud); % visualize the point cloud and get the axis handle
%% Now in the figure window, manually rotate the view to get the desired angle...
desiredCameraPos = axHandle1.CameraPosition; % read the current CameraPosition value
desiredCameraUpVec = axHandle1.CameraUpVector;% read the current CameraUpVector value
figure; % open a new figure
axHandle2 = pcshow(pointCloud);
axHandle2.CameraPosition = desiredCameraPos;
axHandle2.CameraUpVec = desiredCameraUpVec; % these lines will rotate the figure to the same view
Hope this helps!

Categorie

Scopri di più su Image Processing and Computer Vision in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by