【发布时间】:2011-09-27 04:35:16
【问题描述】:
检测照片中发票/收据/纸张角落的最佳方法是什么?这将用于 OCR 之前的后续透视校正。
我目前的做法是:
RGB > Gray > Canny Edge Detection with thresholding > Dilate(1) > Remove small objects(6) > clearborder objects > 根据凸面区域挑选大型博客。 > [角落检测 - 未实现]
我不禁认为必须有一种更强大的“智能”/统计方法来处理这种类型的细分。我没有很多训练示例,但我可能会得到 100 张图像。
更广泛的背景:
我正在使用 matlab 进行原型设计,并计划在 OpenCV 和 Tesserect-OCR 中实现该系统。这是我需要为这个特定应用解决的许多图像处理问题中的第一个。因此,我希望推出自己的解决方案并重新熟悉图像处理算法。
以下是我希望算法处理的一些示例图像:如果您想接受挑战,大图像位于 http://madteckhead.com/tmp
(来源:madteckhead.com)
(来源:madteckhead.com)
(来源:madteckhead.com)
(来源:madteckhead.com)
最好的情况是:
(来源:madteckhead.com)
(来源:madteckhead.com)
(来源:madteckhead.com)
但是在其他情况下它很容易失败:
(来源:madteckhead.com)
(来源:madteckhead.com)
(来源:madteckhead.com)
提前感谢所有伟大的想法!我喜欢!
编辑:霍夫变换进度
问:什么算法可以对霍夫线进行聚类以找到角点? 根据答案的建议,我能够使用霍夫变换,挑选线条并过滤它们。我目前的方法相当粗糙。我假设发票与图像的偏差始终小于 15 度。如果是这种情况,我最终会得到合理的线路结果(见下文)。但我并不完全确定一个合适的算法来聚类线条(或投票)以推断角落。霍夫线不是连续的。在嘈杂的图像中,可能存在平行线,因此需要与线原点度量的某种形式或距离。有什么想法吗?
(来源:madteckhead.com)
【问题讨论】:
-
是的,我让它在大约 95% 的情况下工作。由于时间短缺,我不得不搁置代码。我会在某个阶段发布跟进,如果您需要紧急帮助,请随时委托我。很抱歉没有很好的跟进。我很想重新开始开发此功能。
-
Nathan,您能否就您最终如何做到这一点进行跟进?我一直在同一点识别纸的角落/外轮廓。我遇到了和你一样的问题,所以我对解决方案非常感兴趣。
-
这篇文章中的所有图片现在都是 404。
标签: image-processing opencv edge-detection hough-transform image-segmentation