旋转/调整OpenCV轮廓线段的大小 我在V10 64位机上使用VS2012 C++使用OpenCV3.1.1。

旋转/调整OpenCV轮廓线段的大小 我在V10 64位机上使用VS2012 C++使用OpenCV3.1.1。,c++,opencv,C++,Opencv,我希望这不是一个愚蠢的问题 我正致力于比较形状匹配的轮廓段,如:Xingang等,“用于鲁棒形状分类的轮廓碎片包”(2014) 我有一系列的点定义了轮廓的一段,而且我有一系列的这些段。我想做的是规范化每个片段,使它们具有相同的X长度,具有不同的Y值 此外,应旋转线段,以便在规格化线段时,最大长度沿X轴。例如,相同长度的水平线和垂直线将标准化为相同的值 如果线段只是直线,那将是一个问题。但是,这些线段可能有曲线等 一旦线段在同一轴上对齐并规格化,就可以以缩放和旋转不变的方式比较每个线段 线段由向量

我希望这不是一个愚蠢的问题

我正致力于比较形状匹配的轮廓段,如:Xingang等,“用于鲁棒形状分类的轮廓碎片包”(2014)

我有一系列的点定义了轮廓的一段,而且我有一系列的这些段。我想做的是规范化每个片段,使它们具有相同的X长度,具有不同的Y值

此外,应旋转线段,以便在规格化线段时,最大长度沿X轴。例如,相同长度的水平线和垂直线将标准化为相同的值

如果线段只是直线,那将是一个问题。但是,这些线段可能有曲线等

一旦线段在同一轴上对齐并规格化,就可以以缩放和旋转不变的方式比较每个线段

线段由向量中的一系列点指定。所以,我的问题是:做这件事的最好方法是什么


谢谢您的帮助。

您能使用cv::Minareact并根据旋转的矩形执行标准化吗?太好了!这就是我要找的。您可以使用Minareact获得腐蚀矩阵。然后可以使用旋转矩阵和cv::transform来变换点。我仍然不做缩放,但我认为这可以更容易地处理。计算重心并通过从中减去cog移动每个轮廓点。之后,轮廓的中心距为(0/0)。2.计算新中心轮廓到(0/0)的平均绝对距离。3.按1/avgAbsDist缩放等高线点位置,以便新的平均绝对距离为1=>标准化。这与ICP(迭代最近点)算法的第一步相同。如果您需要更详细的描述。