Jump to content

Camera undistortion model


DaKenpachi

Recommended Posts

Hey guys from SRWorks,

 

can you please tell me what kind of distortion model you used? I just don´t get it from the code...
In your UE plugin you use this to get some kind of undistortion map from the API itself:

ViveSR_GetParameterFloatArray(FSRWorksModule::Get().MODULE_ID_SEETHROUGH, ViveSR::SeeThrough::Param::UNDISTORTION_MAP_L, &UndistortionMap_L);ViveSR_GetParameterFloatArray(FSRWorksModule::Get().MODULE_ID_SEETHROUGH, ViveSR::SeeThrough::Param::UNDISTORTION_MAP_R, &UndistortionMap_R);

and later use that map for undistorting the image:

float undistortedX = undistortionMap[(int)eye][idx * 4 + 2] - undistortedCx[(int)eye];float undistortedY = undistortionMap[(int)eye][idx * 4 + 3] - undistortedCy[(int)eye];

But what is the content of the map? It does not look like the OpenCV camera calibration model, so I just dont get it =/

Link to comment
Share on other sites

I 100% agree with you on the lack of documentation part.

 

These are things that desperately need documentation.

 

My only assumption thus far is that this is for getting the camera matrix you would need to apply undistortPoints to the distorted image in order to undistort it.

 

It would be nice if there were documentation to confirm or deny it.

Link to comment
Share on other sites

To my understanding right now, undistortMap is a huge array, where the 5th and 6th "channel" is the LookUpTable for mapping X and Y values. (like here, chapter: Undistortion, 2. using remapping).

 

I mean, from indexing alone, this can never be a camera matrix, if it´s size is at least

maxIndex = w * h * 4 + 3

But if it is - why isn´t it just the LUT for mapping? What is the data in the other channels? An why would it be so complecated to use it (I mean, in this form you can´t even use opencv remap function directly)....

Link to comment
Share on other sites

  • 1 month later...

No, I´ve stopped working with SRWorks.

 

My goal was to replace the camera, but use parts of the SRWorks plugin just with the videostream of the other camera. It did not work out well, because the plugin is really confusing and complicated....

 

Recently I bought a Zed Mini from Stereolabs, which has its own working SDK and UE plugin, attached it to the HMD and it works just fine ;)

 

 

Link to comment
Share on other sites


 wrote:

No, I´ve stopped working with SRWorks.

 

My goal was to replace the camera, but use parts of the SRWorks plugin just with the videostream of the other camera. It did not work out well, because the plugin is really confusing and complicated....

 

Recently I bought a Zed Mini from Stereolabs, which has its own working SDK and UE plugin, attached it to the HMD and it works just fine ;)

 

 

This actually looks pretty interesting, is there native C++ development support or is it only plugins for the well known game engines. Our product is already feature complete and for the most part done, but I'm not happy with the low resolution and the really low quality depth information, are these things you feel were addressed well by the zed? SDK documentation quality? Sorry, I hope you don't mind me picking your brain on this one.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...