I’m a relative newcomer to Orfeo. I have a orthomosaicing pipeline setup using OSSIM for orthorectification and OTB for mosaicing. The performance difference between mosaicing in OSSIM vs in OTB was massive and now I’m looking to move the orthorectification portion to OTB. I’m a seasoned c++ developer, but I haven’t used ITK before so I’m feeling a bit lost. I read the limitations for otbOrthorectification and I don’t think any of the existing models will work well with my current pinhole + radial distortion model. My process for adding my model in OSSIM was to add a new model defining its save/load states, world-to-image/image-to-world projections, a metadata file reader, and then adding the model with its customer reader to the factory. So I’m looking for some guidance on how to add a new sensor model with its own metadata format.
My current understanding of what I need to do is this (on the 2040-RPC_model branch):
- Add new PinholeRadial transform base class derived from SensorTransformBase
- Add a pair of transform classes representing the forward and inverse pinhole radial transforms derived from the perviously mentioned PinholeRadial transform base class
- Add a PinholeRadial Metadata Interface and corresponding factory derived from ImageMetadataInterfaceBase
What I’m unsure of is how to make OTB use the PinholeRadial transforms vs the RPC transforms. I dont see a factory for transforms that I need to register with.
Is there anything that I am missing before I dive in?