OpenCV检测角落

时间:2011-04-24 08:28:54

标签: image-processing opencv

我在iPhone上使用OpenCV。我想在照片中找到一个数独游戏。 我从一些高斯模糊,自适应阈值,反转图像和扩张开始。 然后我做了一些findContour和drawContour来隔离数独网格。 然后我使用霍夫变换找到线条,我现在需要做的是找到网格的角落。数独照片可以拍摄角度,所以我需要找到角落,这样我就能正确裁剪和扭曲图像。

这是两张不同照片的外观。一个很直,一个角度:

概率霍夫

http://img96.imageshack.us/i/skrmavbild20110424kl101.png/

http://img846.imageshack.us/i/skrmavbild20110424kl101.png/

(标准霍夫发表评论。我不能发布两个以上的链接)

那么,找到这些角落的最佳方法是什么?哪两种变换最容易使用?

最诚挚的问候 莱纳斯

4 个答案:

答案 0 :(得分:2)

为什么不使用OpenCV的角点检测?看看cvCornerHarris()。

或者,看看cvGoodFeaturesToTrack()。它是瑞士军刀的特征检测,可配置为使用Harris角点探测器(等等)。

答案 1 :(得分:1)

我建议采用以下方法。首先,找到所有线的交叉点。通过角度将线条分成“水平”和“垂直”是有帮助的(即找到两个主要方向的线)。然后找到获得点的凸包。现在你有角落和边界上的一些点。您可以通过分析凸包中相邻点之间的角度来移除后者。角落的角度约为90度,并指向边界 - 约180度。

答案 2 :(得分:0)

您是否看过这篇博文,其中概述了如何使用OpenCV为iPhone制作数独求解器?

http://sudokugrab.blogspot.com/2009/07/how-does-it-all-work.html

答案 3 :(得分:0)

您是否看过此链接:Sudoku grabber with OpenCV

相关问题