类似的函数,如sp.linalg.norm,sp.cross在C ++中

时间:2016-05-20 19:14:51

标签: python c++ math

在python中我们有库 scipy ,其中包含 sp.linalg.norm sp.cross 。 C ++ boost 库中是否有类似的功能?

1 个答案:

答案 0 :(得分:0)

似乎没有。

然而,OpenCV拥有您所需要的!

L2规范:http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#norm
十字:http://docs.opencv.org/2.4/modules/core/doc/basic_structures.html#Point_

#include <opencv2/opencv.hpp>

int main(int argc, const char *argv[])
{
    cv::Point3d p1(1, 0, 0);
    cv::Point3d p2(0, 1, 0);

    cv::Point3d cross_prod = p1.cross(p2);

    std::cout 
        << "<" << cross_prod.x 
        << ", " << cross_prod.y 
        << ", " << cross_prod.z 
        << ">"
        << std::endl;

    std::cout << "L2 norm: " << cv::norm(cross_prod) << std::endl;

    return 0;
}

输出:

<0, 0, 1>
L2 norm: 1