M3C2 via CLI

Questions related to plugins development
Post Reply
millja
Posts: 2
Joined: Wed Sep 09, 2020 1:56 am

M3C2 via CLI

Post by millja »

having difficulties around running M3C2 plugin via the command line interface. I am trying to run the following parameters (see attached) but functions as "false" are still being processed. Attempting to use M3C2 with;
- normals pre-calculated on Cloud#1 (no normals calculated)
- no subsampling

The issue is parameters that are selected as false are still being used. Normals are being calculated with a normal orientation, and it's still having a subsampling ratio applied. I can work around the subsampling ratio with a low number but I cannot resolve the incorrect normal orientations. All available normal orientations are incorrect and I use the sensor position usually to calculate this. When I use these parameters in the user interface it turns out as desired but not through the CLI. How do I resolve the normals orientation in the command line interface as my program requires doing it through this way?

Topic won't let me attached the parameters used so see below.

[General]
M3C2VER=1
NormalScale=0.3
ExportDensityAtProjScale=false
ExportStdDevInfo=false
MaxThreadCount=20
MinPoints4Stat=5
NormalMinScale=1
NormalMaxScale=1
NormalMode=1
NormalPreferedOri=4
NormalStep=1
NormalUseCorePoints=true
PM1Scale=1
PM2Scale=1
PositiveSearchOnly=false
ProjDestIndex=1
RegistrationError=0
RegistrationErrorEnabled=false
SearchDepth=1.2
SearchScale=0.3
SubsampleEnabled=false
SubsampleRadius=0.00001
UseMedian=false
UseMinPoints4Stat=true
UseOriginalCloud=false
UsePrecisionMaps=false
UseSinglePass4Depth=false
Attachments
02.PNG
02.PNG (19.78 KiB) Viewed 14675 times
01.PNG
01.PNG (21.01 KiB) Viewed 14675 times
daniel
Site Admin
Posts: 7717
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: M3C2 via CLI

Post by daniel »

Can you also share your exact 'command line'?
Daniel, CloudCompare admin
millja
Posts: 2
Joined: Wed Sep 09, 2020 1:56 am

Re: M3C2 via CLI

Post by millja »

I have done more investigation and feel it could be a problem with normals calculated in CloudCompare compared to those calculated using M3C2 plugin.

Originally I was trying;
C:\>"\Program Files\CloudCompare\CloudCompare" -O \Users\%username%\Documents\66\baseline_0_4455_EXT206_2017-07-02.ply -O \Users\%username%\Documents\66\registered_0_4455_EXT206_2020-07-14-08-22-50_Z.ply -M3C2 \Users\%username%\Documents\66\m3c2_params.txt
baseline file has normals pre-calculated using Normals/Compute - LS PLANE - radius 0.3 - MST, knn=6
run in CLI with parameters for Normals for UseCloud1 & subsampling = false but still did normals calculation and subsampling
error in CLI "Can't restore the previous normal computation method (cloud#1 or core points has no normals)"

Then I tried with baseline saved as CloudCompare bin
C:\>"\Program Files\CloudCompare\CloudCompare" -O \Users\%username%\Documents\66\baseline_0_4455_EXT206_2017-07-02.bin -O \Users\%username%\Documents\66\registered_0_4455_EXT206_2020-07-14-08-22-50_Z.ply -M3C2 \Users\%username%\Documents\66\m3c2_params.txt
run in CLI with parameters for Normals for UseCloud1 & subsampling = false but still did normals calculation and subsampling
same error in CLI "Can't restore the previous normal computation method (cloud#1 or core points has no normals)"

I then tried pre-calculating normals in CLI to use in M3C2 plugin
C:\>"\Program Files\CloudCompare\CloudCompare" -COMPUTE_NORMALS -O \Users\%username%\Documents\66\baseline_0_4455_EXT206_2017-07-02.ply -O \Users\%username%\Documents\66\registered_0_4455_EXT206_2020-07-14-08-22-50_Z.ply -M3C2 \Users\%username%\Documents\66\m3c2_params.txt
run in CLI with parameters for Normals for UseCloud1 & subsampling = false but still did normals calculation and subsampling
same error in CLI "Can't restore the previous normal computation method (cloud#1 or core points has no normals)"

The other method we tried was using sensor position for normals orientation. The confusion over was;
CloudCompare -O cloud1 -O cloud2 -O core_points -M3C2 parameters_file
when cloud1 is the core points and their is a trajectory file to use as sensor position. No combination of positions yielded the desired result with M3C2 distances.

Image attached shows error message in command line. Originally was trying this using v2.10.2 before updating to v2.11.3 and seeing no difference.
Attachments
04.png
04.png (29.16 KiB) Viewed 14659 times
Post Reply