我想在几帧上对从cv::findContours
输出的简单形状轮廓进行时间平滑处理。最简单的方法是单独运动过滤每个点。但是,从一帧到另一帧的轮廓中的点没有保证的对应关系,因此平均值会使点跳跃。
我认为我想要的方法是将轮廓简化为N个均匀间隔的点,然后我可以对每个点进行帧到帧的运动过滤。但是,我找不到一个opencv轮廓简化方法,它将固定大小的轮廓作为输出。
我看到cv::approxPolyDP
,正如其他问题中所建议的那样,但它没有针对固定大小。
答案 0 :(得分:3)
首先,这样的功能在OpenCV中不存在。
其次,它并不像说的那么容易。假设您将使用"标准化轮廓近似一个完美的圆圈" 4点:你的算法应该把积分放在哪里?
当然:实际上你可能不会看到这样的理想化问题,但你必须意识到它们。 (例如,如果您总是将第一个点放在轮廓的顶部,那么您将遇到类似星形结构的问题。您的起点可能会在恒星的两个顶角之间闪现。)
tl; dr它没有在OpenCV中实现,也可能是因为没有(简单/"正确")方式一致地放置点
答案 1 :(得分:3)