我正在做一个有趣的项目:使用OpenCV从输入图像中解决数独(如谷歌护目镜等)。我已经完成了任务,但在最后我发现了一个小问题,我来这里。
我使用OpenCV 2.3.1的Python API进行编程。
以下是我所做的:
找到角点。
例如:
(注意这里的绿线正确地与数独的真实边界重合,因此数独可以正确地弯曲。检查下一张图片)
将图像扭曲为完全正方形
如图片:
执行OCR(为此我使用了我在 OpenCV-Python中的简单数字识别OCR )
这个方法效果很好。
问题:
查看这张图片。
在这张图片上执行第4步的结果如下所示:
所绘制的红线为原轮廓线,即数独边界的真实轮廓线。
所画的绿色线是近似的轮廓线,这将是扭曲图像的轮廓线。
当然,数独游戏上边缘的绿线和红线是有区别的。所以在扭曲的过程中,我并没有得到数独游戏的原始边界。
我的问题:
我如何在数独的正确边界上扭曲图像,即红线或我如何删除红线和绿线之间的差异?OpenCV中有这种方法吗?