我在iPhone上使用OpenCV。我想在一张照片里找到一个数独。我开始使用高斯模糊,自适应阈值,反转图像和扩张。然后我做了一些findContour和drawContour来隔离数独网格。然后我用霍夫变换找到线条,现在我需要做的是找到网格的角落。数独照片可能是在某个角度拍摄的,所以我需要找到角落,这样我才能正确地裁剪和扭曲图像。
这是两张不同照片的样子。一个很直,一个成直角:
概率的脚腕http://img96.imageshack.us/i/skrmavbild20110424kl101.png/
http://img846.imageshack.us/i/skrmavbild20110424kl101.png/(标准霍夫在注释中出现。我不能发布两个以上的链接)
那么,找到这些角的最佳方法是什么?这两个变换中哪一个最容易使用?
致以最亲切的问候李纳斯
为什么不使用OpenCV的角检测?看看cvCornerHarris()。
或者,看看cvGoodFeaturesToTrack()。它是特征检测的瑞士军刀,可以配置为使用Harris角检测器(以及其他)。
我建议采用以下方法。首先,找出所有直线的交点。用角度把线分成"水平"one_answers"垂直"是很有帮助的(即找出线的两个主要方向)。然后求出获取点的凸包。现在在边界上有了角和一些点。你可以通过分析凸包中相邻点之间的角度来消除后者。角的角度约为90度,边界上的点约为180度。