2016-04-18 34 views
3

我正在试图找到一种方法来确定图像是否需要旋转以使文本水平对齐。如果它确实需要旋转多少度?如何确定图像是否需要旋转

我将图像发送到tesseract并使tesseract生效,图像中的文本需要水平对齐。

我正在寻找一种方法做到这一点,而不依赖于图像中的“方向”元数据。

我认为以下几种方式做到这一点的:

  1. 旋转图像顺时针四次90度,发送所有四个图像正方体。这是不理想的,因为需要处理一个图像4次。
  2. 使用霍夫线变换来查看线是垂直还是水平。如果它们是垂直的,则旋转图像。这样图像仍然可能需要旋转180度。所以我不确定这是多么有效。

我想知道是否有其他方法可以使用OpenCV,imageMagik或任何其他图像处理技术来完成此操作。

回答

0

上的所有4个方向Aytempting OCR似乎是一个合理的选择,我怀疑你会发现一个更可靠的启发。

如果速度有问题,可以先对图像的一小部分进行OCR处理。选择一个矩形区域,它具有适当数量的边缘像素和文本的白色/黑色比例,然后将其发送到不同方向的tesseract。有了一个小区域,你甚至可以尝试比90°更小的步骤,或者将它与另一个像霍夫这样的启发式算法结合起来。

如果您还记得基于以前图像的最可能的方向,并且一旦方向由tesseract成功处理就停止,那么在大多数情况下您甚至不必尝试大多数方向。