【发布时间】:2015-12-08 16:42:34
【问题描述】:
typedef boost::geometry::model::d2::point_xy<double> boostPoint;
如何在不转换为 boostPoint 的情况下将 boost::geometry::distance 与 opencv cv::Point 一起使用?
double EuclideanDistance(const cv::Point2d &pt1, const cv::Point2d &pt2)
{
boostPoint boostPt1(pt1.x, pt1.y);
boostPoint boostPt2(pt2.x, pt2.y);
double distance= boost::geometry::distance(boostPt1, boostPt2);
return distance;
}
更新:
我试过这段代码,但它向xerror: ‘x’ has not been declared抱怨
BOOST_GEOMETRY_REGISTER_POINT_2D(cv::Point2d, double, boost::geometry::cs::cartesian, x, y)
【问题讨论】:
-
你不能在没有提升的情况下计算距离吗?
-
您是否对转换积分所花费的时间有疑问,或者您对失去代码的简单性有疑问?
-
@HumamHelfawi 让代码更优雅。
-
@cv_and_he 你能举个例子吗?
标签: c++ opencv boost wrapper boost-geometry