路径识别

在图像图元处理中, 经常需要涉及到路径的识别, 比如曲线的覆盖, 交叉等.
总的来说, 大的方向上, 有几种手段:

  • 一种方式是利用OpenCV的相关的形态学方法. 因为一般处理图像的时候总要使用OpenCV, 顺便将它用在这里也没啥不方便
  • 另一种方法是利用Qt本身的一些路径的方法.

总的来说, 两种方法各有好处. 彼此都有一些对方不支持的手段, 最好的方法就是综合使用.

扩大或缩小多边形

方法1:

对于一个不规则的多边形, 不管是内缩还是外扩, 都没有现成的方法.
一种最简单的做法是利用OpenCV提供的腐蚀膨胀功能.
先在黑底上绘制并填充当前多边形, 然后做腐蚀/膨胀, 然后再findCounter, 得到的就是内缩/外扩后的多边形.

当多边形大小不大的时候, 性能也不需要考虑太多的时候, 这种做法不失为一种简单快速上手的方式.

方法2:

利用仿射变换, 需要计算出收缩比例. 当需要缩小比例的时候这种方法很好用.