【问题标题】:Rectangle detection in image图像中的矩形检测
【发布时间】:2014-04-30 06:24:14
【问题描述】:

我想对一张矩形纸的检测进行编程,它的每一面都不需要完全笔直,因为我可以在“空中”拍摄一张照片,这意味着纸的单面纸张可能会有点变形。

CamScanner 应用程序(iOs 和 android)在这方面做得非常好,我想知道如何实现这一点。首先我想到的是:

  • 平滑/降噪
  • 边缘检测(canny 等)或阈值处理(全局/自适应)
  • 霍夫变换
  • 检测线(仅允许垂直/水平)
  • 计算 4 条找到线的截点

但这给不同类型的图像带来了很多问题。 而且我想知道是否有更好的方法可以直接检测图像中的矩形形状,如果是这样,camscanner 是否也可以这样实现它!?

以下是在 CamScanner 中拍摄的一些图像。 即使在 a) 侧面被扭曲(但角落仍然显示在叠加层中但并不真正适合白纸的角落)和 b) 背景非常接近实际纸张但这些都被很好地检测到它仍然被正确识别:

它甚至可以正确获取旋转的图片:

当我插入一些测试错误时,它会失败但至少检测到一些轮廓,但总是尝试将其检测为矩形:

在这里它完全失败了:

我想在最后三个例子中,如果它会进行霍夫变换,它至少可以检测到矩形四个边中的两个。

有什么想法和提示吗? 提前非常感谢

【问题讨论】:

    标签: image image-processing rectangles edge-detection hough-transform


    【解决方案1】:

    OpenCV 框架可能会帮助您解决问题。另外,您可以查看this document 以获取Android 平台。

    完整的源代码可在Github 获得。

    【讨论】:

    猜你喜欢
    • 2016-09-19
    • 2011-08-22
    • 2020-04-21
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多