如何确定图像是否需要旋转

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

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

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

我想过以下方法来做到这一点:

  • 将图像顺时针旋转90度并将所有四幅图像发送到tesseract。 这是不理想的,因为需要处理一个图像4次。
  • 使用霍夫线变换来查看线条是垂直还是水平。 如果它们是垂直的,则旋转图像。 这样图像仍然可能需要旋转180度。 所以我不确定这是多么有效。
  • 我想知道是否有其他方法可以使用OpenCV,imageMagik或任何其他图像处理技术来完成此操作。


    在所有4个方向上尝试ocr似乎是一个合理的选择,我怀疑你会找到更可靠的启发式。

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

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


    如果您有1000张水平或垂直图像,则可以将这些图像调整为224x224,然后微调卷积神经网络,如AlexNet或VGG来完成此任务。 如果您想知道图像的右旋转数量,可以将标签设置为顺时针旋转的数量,如0,1,2,3。

    http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.html

    链接地址: http://www.djcxy.com/p/67155.html

    上一篇: How to determine if an image needs to be rotated

    下一篇: Completing an image edge using MATLAB