我和我的同学目前正在开设一个课程项目,我们需要一些指导 . 我们决定使用Matlab重新创建“CamScanner”应用程序 .

我们可以手动选择角落,我们成功地应用透视变换来拉直图像和Bradley的自适应阈值以获得所需的黑白图像 .

然而,我们正试图通过自动选择角落来更多地改进我们的项目 . 我们能够使用盒式过滤器(Sobel)检测边缘的垂直,水平甚至对角线,并进一步提高结果 . (见右下图) .

然后我们使用从上一步得到的边来计算Hough变换,因此,我们能够找到Hough线 . 现在剩下的就是检测角落,这是通过从霍夫变换中找到的16条线中找到4条线 . (在霍夫变换中直接使用四条线将导致图像的整个边界的检测,16对于几乎所有的测试数据都是理想的) .

关于如何在我们制定的步骤之后以简单的方式检测角落的任何建议?我们尝试了检测HarrisFeatures和detectMinEigenFeatures来检测角落,但我们没有得到任何满意的结果 . 我们欢迎任何建议,谢谢!

我们的测试数据:1 . 在右边;应用水平/垂直/对角线边缘检测后的结果2.在左侧; 16个霍夫线

Test Data 1 - a page from a book

Test Data 2 - a page from notebook

PS:我不知道在哪里发布我的问题的确切地点,所以我在这里发布了Matlab Community .