In the context of a command line calculation, two point clouds (importCloudF2 and importReferenceCloud, from Agisoft Metashape) will be compared with M3C2. Subsequently, one point cloud will be filtered based on the M3C2 value. The filtered point cloud (EXPORTCLOUD_M3C2filtered1) is intended to be divided into connected components. Here are my commands:
Code: Select all
CloudCompare -SILENT \
-AUTO_SAVE OFF \
-O -GLOBAL_SHIFT ${globalShiftx} ${globalShifty} ${globalShiftz} ${importCloudF2} \
-SET_ACTIVE_SF 5 \
-FILTER_SF $confidenceCompareCloud 255 \
-O -GLOBAL_SHIFT ${globalShiftx} ${globalShifty} 0 ${importReferenceCloud} \
-CROP2D Z ${row_count} ${vertices} \
-M3C2 ${M3C2PARA} \
-POP_CLOUDS \
-C_EXPORT_FMT ASC -ADD_HEADER \
-SAVE_CLOUDS FILE ${EXPORTCLOUD1}.txt \
-SET_ACTIVE_SF 5 \
-FILTER_SF MIN -$M3C2Value \
-C_EXPORT_FMT ASC -ADD_HEADER \
-SAVE_CLOUDS FILE ${EXPORTCLOUD_M3C2filtered1} \
-EXTRACT_CC 9 98 \
-C_EXPORT_FMT ASC -ADD_HEADER \
-SAVE_CLOUDS ALL_AT_ONCE FILE ${EXPORTCLOUD_components}
The following error message appears, and the connected component command is not executed:
When I apply "-EXTRACT_CC 9 98" via command line, the error occurs.CloudCompare: /mnt/Daten/software/cloudcompare/cloudcompare-v2.12.4/libs/qCC_db/include/ccScalarField.h:66: void ccScalarField::Range::setBounds(ScalarType, ScalarType, bool): Assertion `minVal <=maxVal' failed.
/var/spool/slurmd/job62900/slurm_script: line 231: 182826 Aborted (core dumped)
When I apply "-EXTRACT_CC 1 2" via command line, the operation completes, but only one component is generated as an empty text file. However, when I manually load the point cloud EXPORTCLOUD_M3C2filtered1 into CloudCompare and apply EXTRACT_CC with 9 98, I get the desired result. The strange thing is that the process works in command line mode when I let importCloudF2 generate with higher accuracy values in Metashape, even though the resulting point cloud EXPORTCLOUD_M3C2filtered1 looks similar as the one with lower accuracy settings, just with a few more points. In both cases, the point cloud to which the command is applied has the necessary minimum number of points to produce a result. So, how should the error message be interpreted?
I really hope someone can help me. I'm getting a bit desperate...
Best regards,
Michael