如何删除数独方格中的凸缺陷?

15 浏览
0 Comments

如何删除数独方格中的凸缺陷?

我在做一个有趣的项目:使用OpenCV从输入图像中解决数独问题(就像Google眼镜等)。我已经完成了任务,但最后发现了一个小问题,所以我来这里寻求帮助。

我使用OpenCV 2.3.1的Python API进行编程。

以下是我的做法:

  1. 读取图像
  2. 寻找轮廓
  3. 选择面积最大的轮廓(并且大致等于正方形)。
  4. 找到角点。

    例如下面给出的图像:

    enter image description here

    注意这里绿线与数独的真实边界正确重合,因此可以正确地对数独进行变形。请查看下一张图片)

  5. 将图像变形为完美的正方形

    例如图像:

    enter image description here

  6. 进行OCR(我使用的方法在这里给出)

这个方法效果很好。

问题:

请查看这张图片

对该图像执行第4步会得到以下结果:

enter image description here

画的红线是数独的原始轮廓,即数独边界的真实轮廓。

画的绿线是近似轮廓,将成为变形图像的轮廓。

当然,绿线和红线在数独的顶边有差异。因此,在变形时,我无法得到数独的原始边界。

我的问题:

如何在数独的正确边界上进行图像变形,即红线,或者如何消除红线和绿线之间的差异?OpenCV中有没有相应的方法可以实现这一点?

0