检测图像的旋转度
我正在做opencv中的一个项目来检测用户填充表单中的手写字符。 我已经用算法来检测使用Hough Line Transform的扫描图像的倾斜角度。 但是当图像旋转180度时不起作用,因为Hough Line函数将0和180度视为相同。 我的图像包含一些矩形来填充它们和一些文本中的数据。 那么如何检测扫描图像是否旋转180度?
因为我将不得不首先纠正图像的倾斜角度,那么只有我可以准确检测图像用户填充数据(我需要提取的)的位置,使用前面提供的空模板表单中的矩形坐标,不使用chacater识别受到赞赏。
要提升180°模糊度,只有OCR可以告诉您:对已纠偏的文本执行两次读取,一次使用给定角度,另一次使用角度+ 180°,并保持最成功的读取。
除非你有一些先验信息,否则这是唯一的方法,因为其他图像处理操作不知道字符。
更新:
有些字符串是永远不明确的,比如0689HINOSXZ <=> ZXSONIH6890。
如果文本的布局是已知的(框)并且是不对称的,那么检查文本字符串与布局的匹配是相对容易的事情:选择一个框(例如最上面的)和一个字符串(最上面的),并且对齐他们通过翻译; 然后看看其他方框和字符串是如何匹配的(使用最近邻居规则)并建立对应关系。 将结果与直线和翻转布局进行比较,并保持最佳重叠区域。
对于可靠性来说,尝试比起始框/字符串更好可能会更好,因为可能有一些不明确的地方(它甚至可能会丢失)。
你的问题不是更一般吗? 假设您检测到+45度的倾斜角并将图像旋转-45度。 那么它可能仍然是图像旋转了180度,因为它没有旋转+45度,而是-135。
无论如何,对于真正的问题:我不是字符识别方面的专家,但我认为如果你在应用程序中使用它,难道你不能只是尝试两个旋转字符识别,然后选择一个得到更强烈的反应?
如果将模板中的矩形与歪斜校正后的图像中的矩形进行匹配,您将能够获得正确的方向(但只有在这些矩形的位置没有对称性时) 。 对于匹配,您可以使用模板中的矩形作为蒙版,从倾斜校正图像中提取区域。
编辑
假设你的模板和校正后的图像看起来像这样(在最好的情况下,在偏斜校正中没有位移):
然后,您可以使用该模板作为蒙版来复制来自倾斜校正图像的数据。 然后检查复制图像中包含模板中白色像素的哪一部分。 对于180度旋转的图像,该值将非常低。
但正如你所说,由于位移,这在实践中将不起作用。 然后可以尝试使用模板图像作为模板的模板匹配(交叉关联)。 最强峰的位置和强度会给你一些方向的指示。 您可以以降低的分辨率执行模板匹配,以便运行速度更快。
链接地址: http://www.djcxy.com/p/67149.html上一篇: Detect degree of rotation of an image
下一篇: collection not saving model if passed as property of model