OpenCV - 如何将像素跟随轮廓转换为顶点跟随轮廓

OpenCV - How to translate a pixel-following contour to vertex-following contour

我正在使用 cv2.findContours。检索到的轮廓为 'pixel following'(图 a)。然后我将它们保存为 svg 多边形元素。

我的问题是 svg 多边形被简单地解释为 'vertex-following'(图 b 是想要的解决方案)。因此,我丢失了右侧和底部的单个像素文件,因为 "mid-pixel" 坐标被解释为左上角坐标。

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

我的密码是HERE

我通过以下方式解决了这个问题:

  1. 将图像缩放 x2
  2. 寻找轮廓
  3. 将轮廓点除以 2 并向上取整