首页 文章

使用OpenCV进行形状检测

提问于
浏览
0

我正在研究OMR引擎 . 扫描的页面是4个角(我裁剪左上角并附加) . 我用红线勾勒出轮廓 . 因此,我需要检测扫描页面的角(标有红色轮廓的形状)以检测OMR的区域 . 我想用OpenCV / JavaCV来做,但我是OpenCV的新手 . 我找到了像轮廓检测和近似,线检测与Hought变换的解决方案,但我不太清楚如何申请解决我的问题 . 请帮忙 . 线条粗细约为19px,长度约为250像素;

image from scanner

2 回答

  • 2

    有很多方法可以解决这个问题 . 我认为你所寻找的东西类似于template matching,因为你知道你在每张图片中寻找什么 . OpenCV具有标准template matching的实现 .

    这会给你一个不错的开始,但是,它可能不够强大,无法处理各种扫描文档 . 您可能想要对最先进的物体识别算法进行一些操作 . 这些往往是高度专有的,所以如果很难找到关于这个主题的大量详细信息,不要感到惊讶 .

  • 1

    如果您的图像以常规方式捕获,即所有相同大小或特定距离,我认为以下步骤将有所帮助:

    • 指定您的投资回报率(图片左上角的感兴趣区域)

    • 消除噪音(您可以使用特定SE尺寸的侵蚀)

    • 对图像进行侵蚀以消除细线

    • 使用Line Hough变换

    • 找到线的交点

    在那之后,你有你的形状的角落 .

相关问题