从曲线中提取点

时间:2017-02-22 08:10:10

标签: c++ algorithm opencv curves

我有曲线的黑白图片,我想提取代表每条曲线的最小点。点由直线连接。这是我想要的一个例子:

enter image description here enter image description here

这很有用如果我能知道点的优先级,特别是在绑定的部分。我正在使用c ++和opencv。 我应该用什么算法解决这个问题?

2 个答案:

答案 0 :(得分:2)

OpenCV为这个cv::approxPolyDP提供了很好的简单功能。

void approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool closed)

一个简单的例子:

std::vector<cv::Point> curve;
//fill curve
std::vector<cv::Point> approximated_polyline;
cv::approxPolyDP(Mat(curve), approximated_polyline, 3, false);

答案 1 :(得分:0)

关键点检测算法应该有所帮助。 This page提供了简短的历史记录,并开辟了大量的文献供阅读和实验。对this调查本地不变特征检测器也可能是值得的。