2017-01-16 148 views
1

我正在使用cv2.findContours。检索到的轮廓是“像素跟随”(图a)。然后我将它们保存为svg多边形元素。OpenCV - 如何将像素跟踪轮廓转换为顶点跟踪轮廓

我的问题是,svg多边形被认为是一种天真的方式“顶点跟随”(图b是想要的解决方案)。因此,我丢失了右侧和底部的单个像素文件,因为“中间像素”坐标被解释为左上角坐标。

如何将我的轮廓从像素转换为顶点(角点)或以其他方式获得像素精确的顶点跟随轮廓?

我的代码是HERE

enter image description here

+1

在我看来,如果您将所有像素都复制到了“东南方向”,然后运行轮廓算法,您将得到所需的轮廓。 –

+0

这不会工作,因为它可以关闭一个像素宽的差距 – eyaler

回答

1

我设法解决这个问题:

  1. 缩放图像x
  2. 发现轮廓
  3. 除以2的轮廓点和舍入up