仅记录学习日常感悟,有错误请各位大哥们指出
在CloudCompare中显示样地点云的时候,发现点云显示异常,如下:
但是,正常点云不会出现这个问题,正常点云如下:
经过查阅资料,发现点云出现这个问题的原因在于CC使用的数据类型为单精度,有效位数为6~7位,当在CC中设置的偏移量过大时,会导致原本x坐标为0.344519的数据变为123456.344519(123456为偏移量),但是由于float有效位数的限制,只能表示为123456,就丧失了小数后面的准确性,再来一个x坐标为0.44519的点,经过123456的偏移后,还是只能表示为123456,所以,这样类似的点就会拥挤在一起,造成了点云数据显示为一条条的竖线。
#include<iostream>
int main() {
//用float数据类型表示0.344519
float num1 = 0.344519f;
float num2 = 123456.344519f;
std::cout << "num1:" << num1 << std::endl;
std::cout << "num2:" << num2 << std::endl;
return 0;
}