Incomplete Real View for structured RCP created by Recap SDK

Incomplete Real View for structured RCP created by Recap SDK

lamorlette
Advocate Advocate
766 Views
4 Replies
Message 1 of 5

Incomplete Real View for structured RCP created by Recap SDK

lamorlette
Advocate
Advocate

Sum-up:

When I create a structured RCP with Recap SDK, there are many missing pixels in the Real View seen in Recap application, whereas if I create a RCP with Recap application from exactly the same data, the Real View is fine.

 

Detailed protocol:

  • From data in memory, I write an E57 file. Then, from this E57 file, with Recap application, I create a RCP. This is what I call the RCP created by Recap application.
  • From the same data in memory, I create a structured RCP with Recap SDK, with the following parameters:
RCSharedPtr<RCProjectImportSession> import_session = RCProjectImportSession::init(filename, RCFileMode::New, error_code);

RCScanMetadata scan_metadata;
scan_metadata.isStructured = true;
scan_metadata.structuredScanMetadata = ...

RCScanImportOptions import_options;
import_options.pointDistanceInMM = 0;
import_options.noiseFilterLevel = RCNoiseFilterLevel::None;  // Minimal gives the same result
import_options.updateCacheFiles = false;

import_session->addScan(scan_metadata, import_options);​

 

Detailed results:

(Table with images doesn't seem to behave correctly.)

First image: 3D View. Second Image: Real View.

 

E57 file:

lamorlette_0-1617888820671.pnglamorlette_1-1617888980977.png

 

RCP created by Recap application:

lamorlette_2-1617889317619.pnglamorlette_3-1617889530167.png

 

RCP created by Recap SDK:

lamorlette_4-1617889881576.pnglamorlette_5-1617889985619.png

 

Question:

How can I get a correct (without missing pixels) Real View (2D panoramic image) for the structured RCP created with Recap SDK?

767 Views
4 Replies
Replies (4)
Message 2 of 5

yan.fu
Alumni
Alumni

Do you get the same result if you use the e57 CCK provided in the ReCap SDK?

 

The difference of ReCap import and ReCap SDK import is that: 

* ReCap will update the structured scan resolution to make sure the spherical realview is correct. 

* For ProjectImportSession, it will take the scan resolution information set in StructuredScanMeta for the range image computation. If the set scan resolution is slightly bigger than the actual scan resolution, it may cause this kind of seam effect as shown in your post. 

 

We can try to do some improvement for ReCap SDK to improve the spherical Realview generated by ReCap SDK.

 

Best,

Yan

Message 3 of 5

lamorlette
Advocate
Advocate

Thanks for the hint, this seems indeed linked to the scan resolution since, when I read the panoramic depth image from the different RCP, I can see that (see images below):

  • The panoramic images for all RCP have their upper invalid parts cropped: in the original data of my example, the half quarter of the top of the panoramic image is made of only invalid points; this part is completely absent from the RCP (both the one created by Recap application, and the one created by Recap SDK).
  • The panoramic image of the RCP created by Recap application is correct (except the missing invalid part at the top), whereas the one of the RCP created by Recap SDK is deformed.

Original panoramic image:Original panoramic image.jpg

 

RCP created by Recap application panoramic image:
RCP created by Recap application panoramic image.jpg

 

RCP created by Recap SDK panoramic image:
RCP created by Recap SDK panoramic image.jpg

 

When using Recap SDK, I only set numColumns and numRows of RCStructuredScanMetadata, and I leave the other fields unset. I think you once advised me to let Recap SDK compute automatically the other fields.

 

I tried different values for startElevation and endElevation, but in all cases this resulted in Recap showing a scan foot blank disc at the top (North pole) of the real view.

 

Please, do you think this is where the problem comes from? How should I fill the different RCStructuredScanMetadata fields? Which spherical coordinates system does Recap use (what is the elevation for top North pole: 0, π, π/2?…)

Message 4 of 5

yan.fu
Alumni
Alumni

Hi @lamorlette ,

 

ReCap application does some adjustment for the scan resolution.

Could you share with your dataset so that we can investigate the difference?

 

Thanks,

Yan

Message 5 of 5

lamorlette
Advocate
Advocate

I tried to set RCStructuredScanMetadata::azAngularSpacingRad and RCStructuredScanMetadata::elAngularSpacingRad but it doesn't change anything.

 

I also tried to omit the writing of the 2D indices (RCPointBuffer::setRowIndexAt() and RCPointBuffer::setColumnIndexAt()), but it doesn't change anything!

Please, does Recap SDK systematically remap the points, ignoring the provided 2D indices?