1.计算两向量间夹角
#include <pcl/common/common.h>
Eigen::Vector4f v1(0, 0, 0, 0), v2(1.0, 1.0, 0, 0);
double angle3D = pcl::getAngle3D(v1, v2);
2.计算平均值和标准差
#include <pcl/common/common.h>
std::vector<float> values = { 1,2,3,4,5 }; // 离散值
double mean = 0, stddev = 0;
pcl::getMeanStd(values, mean, stddev);
3. 计算三个点外接圆的半径
#include <pcl/common/common.h>
pcl::PointXYZ pa(0.0, 1.0, 2.0), pb(4.0, 1.0, 2.0), pc(7.0, 1.0, 2.0);
double circumcircleRadius = pcl::getCircumcircleRadius(pa, pb, pc);
4.计算一组值的中值(如果值的数量是偶数,则取两个中间值的平均值)
#include <pcl/common/common.h>
std::vector<double> vector{ 1.0, 25.0, 9.0, 4.0, 16.0 };
double median0 = pcl::computeMedian(vector.begin(), vector.end()); // 列表中值的中值
double median1 = pcl::computeMedian(vector.begin(), vector.end(), static_cast<double(*)(double)>(std::sqrt)); // 列表中开方后的值的中值(该重载多一步lambda表达式)
结果打印: