在python中我们有库 scipy ,其中包含 sp.linalg.norm , sp.cross 。 C ++ boost 库中是否有类似的功能?
答案 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