将图像旋转至直线方向

问题描述 投票:0回答:1

我一直在尝试旋转不同角度的超市账单图像来拉直它们,但我在这样做时遇到了问题。我尝试了以下旋转方法,但问题是图像仅旋转到最近的可能轴。我的意思是,如果方向角在 0 到 90 度之间,则图像将旋转到 0 度(直线)。如果方向角在 90 到 180 度之间,则图像将旋转到 90 度。如果在 180 到 270 之间,则旋转到 180 度,如果在 270 到 360 之间,则旋转到 270 度。

以下是图像方向的一些不同可能性:

60_degree_image120_degree_image240_degree_image 330_degree_image

我希望以上 4 张图像的输出图像与下面的直图相同 图片:

desired_output_of_all_4_images

PS:我不想在代码中手动输入旋转角度,但不知何故,代码必须能够自行旋转以达到所需的输出。上述方法是基于文本方向的,考虑到所有文本都处于相同的方向。

非常感谢任何其他可能的方式和帮助。谢谢!

这是我的交叉检查代码:

请点击此链接获取代码

python opencv image-rotation
1个回答
0
投票

基本上,你有两种可能性。

如果您知道您的输入格式是纵向(高大于宽),您可以继续旋转,直到获得纵向输出格式。当你得到它时,也旋转 180 并保持两个:其中一个将是颠倒的。提取一小块区域,保证其中包含文本(例如中间 200 像素)并对两个样本进行 OCR:其中的单词数量会不成比例地增加:这是正确的方向;返回此格式。

如果您知道您的输入格式是纵向,则必须使用四种可能性来执行此操作,每次都生成一个样本,并返回点击次数最多的那个。

即使您不打算对最终图像进行 OCR,OCR 仍然是确定文本是否正确的最快、最可靠的方法。

© www.soinside.com 2019 - 2024. All rights reserved.