【问题标题】:Detect degree of rotation of an image检测图像的旋转度
【发布时间】:2014-10-02 07:41:13
【问题描述】:

我在 opencv 中做一个项目来检测用户填写的表单中的手写字符。我已经制作了算法来使用霍夫线变换检测扫描图像的倾斜角度。但是当图像旋转 180 度时它不起作用,因为霍夫线函数将 0 度和 180 度视为相同。我的图像包含一些矩形来填充其中的数据和一些文本。那么如何检测扫描的图像是否旋转了 180 度?

因为我必须首先纠正图像的倾斜角度,所以只有我可以使用前面提供的空模板表单中的矩形坐标准确检测用户填充数据(我需要提取)在图像上的位置,答案没有使用字符识别表示赞赏。

【问题讨论】:

  • 是否可以发布一些图像以更好地说明问题?

标签: opencv image-processing image-rotation


【解决方案1】:

要消除 180° 的歧义,只有 OCR 可以告诉您:对歪斜的文本执行两次读取,一次使用给定角度,另一次使用角度 + 180°,并保持最成功的读取。

除非你有一些先验信息,否则这是唯一的方法,因为其他图像处理操作不知道字符。

更新:

有些字符串永远是模棱两可的,比如 0689HINOSXZ ZXSONIH6890。

如果文本的布局是已知的(框)且不对称,则检查文本字符串与布局的匹配是一件相对容易的事情:选择一个框(例如最顶部)和一个字符串(最顶部) ,并通过翻译对齐它们;然后查看其他框和字符串如何匹配(使用最近邻规则)并建立对应关系。将结果与直线和翻转布局进行比较,并保持最佳的整体重叠区域。

为了可靠性,最好尝试多于一个起始框/字符串对,因为可能存在一些歧义,哪个是最上面的(甚至可能丢失)。

【讨论】:

    【解决方案2】:

    你不能简单地计算两个互相关吗?一个有 180 转,一个没有?具有匹配矩形的那个应该会为您提供更高的相关最大值(假设剩余页面的图像对比度不会太误导,但一些预过滤可能会有所帮助。)

    【讨论】:

      【解决方案3】:

      您可以尝试匹配扫描图像和空模板中的关键点(Harris、Sift、...)。使用匹配点,您可以轻松找到将扫描图像与模板对齐的转换。这可能适用于您的情况,但如果图像中有一些带纹理的徽标,您更有可能成功,因为它通常是表单的情况。

      【讨论】:

        【解决方案4】:

        如果您将模板中的矩形与歪斜校正图像中的矩形相匹配,您将能够获得正确的方向(但前提是这些矩形的位置没有对称性) .为了匹配,您可以使用模板中的矩形作为蒙版,从歪斜校正图像中提取区域。

        编辑

        假设您的模板和歪斜校正后的图像看起来像这样(在最佳情况下,歪斜校正中没有位移):

        然后您可以使用模板作为掩码从歪斜校正图像中复制数据。然后检查模板中白色像素的哪一部分包含在复制的图像中。对于 180 度旋转的图像,此值将非常低。

        但正如您所说,由于位移,这在实践中是行不通的。然后可能您可以尝试使用模板图像作为模板的模板匹配(互相关)。最强峰的位置和强度会给你一些方向的指示。您可以以降低的分辨率执行模板匹配,使其运行得更快。

        【讨论】:

        • 是的,我有模板图像中矩形的坐标,即使我从新图像中提取相同的区域,我怎么会发现该区域包含相同的矩形?问题是它们现在已被填充,因此既不能应用轮廓检测​​也不能应用垂直投影技术。此外,即使在图像的倾斜校正之后,新图像也可以垂直或水平移位。所以,我不认为匹配矩形是最好的主意。
        【解决方案5】:

        你的问题不是更普遍吗?假设您检测到 +45 度的倾斜角度并将图像旋转 -45 度。那么它仍然可能是图像旋转了 180 度,因为它不是旋转了 +45 度,而是 -135。

        无论如何,对于实际的问题:我不是字符识别方面的专家,但我认为如果你在应用程序中使用它,你不能只尝试两个旋转的字符识别,然后选择一个得到更强响应的?

        【讨论】:

        • 这就是问题所在。旋转 -45 度后,我想看看新图像现在是 0 度还是 180 度旋转。在初始阶段,我不知道图像中的字符在哪里。它可以是任何随机图像。所以无法应用字符识别。
        • 哦,在这种情况下,我读错了你的问题 :) 好吧,我不太明白。我以为你想检测字符,所以无论如何你都必须找到它们,对吧? :) 所以我的建议是旋转图像,使线条水平放置(如您所描述的使用霍夫变换)并确定是否必须将其旋转 180 度,您尝试在两个方向(0 度和 180 度)上进行字符识别旋转)。
        猜你喜欢
        • 1970-01-01
        • 2020-05-08
        • 1970-01-01
        • 2014-09-08
        • 2018-03-25
        • 2020-08-19
        • 1970-01-01
        • 2011-01-29
        • 1970-01-01
        相关资源
        最近更新 更多