Custom camera position/orientation for orthophotos


I recently started using ODM and love the tools that it provides. I used ODM to generate a high-quality 3d model of an object and would now like to create several artificial images (like an orthophoto) from different camera angles/positions.

More specifically, I have an object with several faces and I would like to generate an artificial image for each camera position/orientation that look towards each face from a constant distance away.

My initial thought is to use RANSAC to find all planes and then adjust the camera coordinate system that is outputted by OpenSFM. However, I imagine there must be an easier way of doing this within ODM without constantly generating new 3d models.

I was wondering if anyone who is more familiar with the software knows a simpler way of doing this. Any help would be greatly appreciated.

1 Like


That sounds like a really interesting problem to solve!

What is your application?

Unfortunately, I won’t be able to assist, but others may well be able.

Can you provide some more context so folks can have a better look?

Thank you for your response! Basically, we are using ODM to create 3d models of objects and do not care about the geo-referencing portion. Once we have the 3d model, we want to snap orthophotos for each face of the objects. We don’t provide gps or gcp data.

I guess I’m struggling to find where in the code the coordinate frame of the camera for the orthomosaic is set. If I could find the location in the code, I could easily manipulate it to take photos from different angles. For example, if I wanted to, I could just rotate the camera by 45 degrees and get a different orthophoto.


Oh, cool!

I think that’s all in the OpenSFM module, but I may very well be wrong.

I’ll keep looking - I’ll dive more into OpenSFM now.

I guess a simpler question from my side that might help me think about it better - when you create a 3d map with a drone, and ODM creates an orthographic image, how does it know to look straight down at the ground? Why do you not end up with an angled orthographic image?

1 Like

This is the module that renders the orthophoto: odm_orthophoto/OdmOrthoPhoto.cpp at main · OpenDroneMap/odm_orthophoto · GitHub

The mesh “cloud” (the mesh vertices) are aligned with the rendering area and then are rasterized using an iterative process (there’s no camera projections).


Got it, thank you so much!

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.