我一直在尝试旋转不同角度的超市账单图像来拉直它们,但我在这样做时遇到了问题。我尝试了以下旋转方法,但问题是图像仅旋转到最近的可能轴。我的意思是,如果方向角在 0 到 90 度之间,则图像将旋转到 0 度(直线)。如果方向角在 90 到 180 度之间,则图像将旋转到 90 度。如果在 180 到 270 之间,则旋转到 180 度,如果在 270 到 360 之间,则旋转到 270 度。
以下是图像方向的一些不同可能性:
我希望以上 4 张图像的输出图像与下面的直图相同 图片:
PS:我不想在代码中手动输入旋转角度,但不知何故,代码必须能够自行旋转以达到所需的输出。上述方法是基于文本方向的,考虑到所有文本都处于相同的方向。
非常感谢任何其他可能的方式和帮助。谢谢!
这是我的交叉检查代码:
基本上,你有两种可能性。
如果您知道您的输入格式是纵向(高大于宽),您可以继续旋转,直到获得纵向输出格式。当你得到它时,也旋转 180 并保持两个:其中一个将是颠倒的。提取一小块区域,保证其中包含文本(例如中间 200 像素)并对两个样本进行 OCR:其中的单词数量会不成比例地增加:这是正确的方向;返回此格式。
如果您不知道您的输入格式是纵向,则必须使用四种可能性来执行此操作,每次都生成一个样本,并返回点击次数最多的那个。
即使您不打算对最终图像进行 OCR,OCR 仍然是确定文本是否正确的最快、最可靠的方法。