【发布时间】:2021-11-22 23:48:30
【问题描述】:
我一直在尝试以不同角度旋转超市账单的图像以使其变直,但这样做时遇到了问题。我尝试了以下旋转方式,但问题是图像仅旋转到最近的可能轴。我的意思是如果方向角度在 0 到 90 度之间,那么图像将旋转到 0 度(直线)。如果定向角度在 90 到 180 度之间,则图像被旋转到 90 度。如果在 180 到 270 之间,则旋转到 180 度,如果在 270 到 360 之间,则旋转到 270 度。
以下是图像方向的一些不同可能性:
60_degree_image120_degree_image240_degree_image 330_degree_image
我希望以上 4 幅图像的输出图像都与下面的相同 图片:
PS:我不想在代码中手动输入旋转度数,但不知何故,代码必须能够自行旋转到所需的输出。上面的方法是基于文本方向的,考虑到所有的文本都是相同的方向。
非常感谢任何其他可能的方式和任何帮助。谢谢!
这是我的交叉检查代码:
【问题讨论】:
-
直接在此处发布您的代码,而不是链接到它
-
我建议您将白色收据从背景中裁剪出来,并将外部设为白色。然后使用 FFT 处理得到方位角并据此直线旋转图像。请参阅pyimagesearch.com/2017/02/20/text-skew-correction-opencv-python 您必须使用 OCR 来确定文本是正面朝上还是正面朝下。
-
感谢@fmw42 的评论。我会解决您提供的可能解决方案并让您知道。
-
请提供足够的代码,以便其他人更好地理解或重现问题。
-
您好@fmw42,我只是尝试使用您在本文中提到的答案中的代码旋转图像:stackoverflow.com/questions/59450102/…,但我没有成功,输出图像与输入图像。你能帮帮我吗?现在,我只需要帮助拉直图像,不管图像是完全正确的还是翻转的。
标签: python opencv cv2 image-rotation