图像矫直算法

时间:2011-01-24 14:28:41

标签: c# php image-processing opencv imagemagick

我正在寻找一种自动拉直图像的方法,我想知道是否有人遇到任何算法来执行此操作。我意识到这样做的能力取决于图像的内容,但任何已知的算法都是一个开始。

我希望最终在C#PHP中实现这一点,但是,我现在主要是在算法之后。

OpenCV这可能吗? ImageMagick?其他

非常感谢, 布雷特

4 个答案:

答案 0 :(得分:1)

这是我的想法:

  1. 边缘检测(Sobel,Prewitt,Canny,...)
  2. hough变换(水平线+/- 10度)
  3. 根据最长/最强线
  4. 拉直图像

    这显然不适用于任何类型的图像。这只是为了讨论。

答案 1 :(得分:1)

ImageMagick有-deskew选项。这只是将图像旋转为直线。

大多数商业OCR引擎(如ABBYY FineReader和Nuance OmniPage)会自动执行此操作。

Leptonica研究库有一个名为skewtest的命令行工具,可以旋转图像。

我还没有找到一个可以拍摄任何其他方式扭曲的图像的图书馆(如针垫或在扫描操作过程中移动过,或者去掉书边缘的经线)。我正在寻找一个可以做到这一点的图书馆或工具,但却找不到。

帕特里克。

答案 2 :(得分:0)

当然这取决于您想要拉直的图像类型,但似乎有一些资源可用于自动拉直文本扫描。

One post我发现提到了3个可以进行自动矫正的程序:

  • TechSoft的PixEdit 7.0.11
  • Mystik Media的AutoImager 3.03
  • 斯派塞的Imagenation 7.50

如果手动拉直是可以接受的,那么有许多教程可以帮助你使用Photoshop手动拉直它们。只是谷歌“图像拉直”

答案 3 :(得分:0)

大多数OCR程序在运行识别之前会使扫描图像变直。您可能在许多开源的OCR程序中找到了很好的代码,例如Tesseract