Forum

Author Topic: Force exterior orientation on sparse point cloud  (Read 202 times)

lagoon

  • Newbie
  • *
  • Posts: 2
    • View Profile
Force exterior orientation on sparse point cloud
« on: April 24, 2025, 07:52:51 PM »
Dear community,

I have used an external tool to match 2 images. I am trying to assess the accuracy of the tie points that were detected. I have also matched the images with Metashape, from which I also got an interior and exterior orientation of high accuracy.

I used Colmap to generate a 3D model (sparse point cloud) of my tie points and I have imported the model into metashape. Now I am trying to "force" the exterior and interior orientation previously estimated to optimise the sparse point cloud (ie. better 3D coordinates of the tie points in object space).

I managed to fix the interior orientation via the Calibration tool, however I don't know how to fix the exterior orientation. My first question is: can we do it at all ? in the GUI or preferably in the python API?

In the GUI, I have managed to manually set X, Y, Z, Yaw, Pitch, Roll values for the cameras (using F2), I have set a very hogh accuracy and this way I got a closer estimation to the exterior orientation  I wanted but not the exact values.

Thanks for your help


lagoon

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Force exterior orientation on sparse point cloud
« Reply #1 on: May 05, 2025, 03:00:07 PM »
I found a solution to this problem.

I am doing everything with the python API and I saw the "save_points" flag in the exportCameras() method.

In my initial Metashape project (where I am interested in the camera orientation and distortion but not the sparse point cloud), I export the orientation using :
Code: [Select]
chunk.exportCameras(path=os.path.join(working_folder, 'ori.xml'), save_points=False)
In my second project, after I have imported my model using:
Code: [Select]
chunk.importCameras(path = 'model.out', format = Metashape.CamerasFormatBundler)
I then re-use importCameras() to apply the previously estimated orientation (format xml), but since i used "save_points=False", the model will only be corrected by the new orientation, instead of being replaced.
« Last Edit: May 05, 2025, 04:17:39 PM by lagoon »