Document doc3 = null;
try {
doc3 = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0")
.referrer("http://www.google.com").ignoreHttpErrors(true).get();
} catch (NullPointerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如何使用boost :: geometry :: distance与opencv cv :: Point而不转换为boostPoint?
typedef boost::geometry::model::d2::point_xy<double> boostPoint;
更新
我尝试了这段代码,但却抱怨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;
}
x
error: ‘x’ has not been declared
答案 0 :(得分:1)
确保包含doc所示的必要标题:
#include <boost/geometry/geometries/register/point.hpp>
答案 1 :(得分:0)
如果您想使代码更优雅,只需使用正确的方法。如果添加到代码中,Boost不是一个优势。由于您的点是OpenCV点,使用OpenCV计算距离,如下所示:
callback()
修改强>
由于OP需要以这种方式进行,我可以建议这个解决方案:创建自己的Point Class让我们称之为double EuclideanDistance(const cv::Point2d &pt1, const cv::Point2d &pt2)
{
return cv::norm(pt1-pt2,cv::NORM_L2);
}
。在MyPoint
中定义复制构造函数以及来自MyPoint
,cv::Point
的对话。在您的代码中,只需在任何地方使用boostPoint
。如果您需要帮助来实现此评论。