2010-04-01 84 views
3

有没有人在c#中看到过任何图像去错算法?我发现: http://www.codeproject.com/KB/graphics/Deskew_an_Image.aspxC#Image Deskew

但不幸的是,它不会为没有文字的图像做很多事情。我特别试图用固体边缘自动歪斜图像,但文字最少。

有没有人看过任何可以做到这一点的东西?

+1

算法似乎有细...只是得到一堆线,找到行SA (x,y)处的颜色是'','(x,y + 1)处的颜色'是'<背景颜色>',并且基于该线的倾斜。 – Tanzelax 2010-04-01 17:35:01

回答

3

基本算法是使用霍夫变换来查找线条,然后尝试使大部分线条水平。以下是一些基本代码http://www.sydlogan.com/deskew.html

对于您的情况,您可能希望将目标转换放在您认为可能具有最佳信息的图像中。例如,如果有页面边框 - 我需要看一个示例以提供更好的建议。

声明,我在Atalasoft工作。

我们的DotImage工具包内置了.NET,运行时免版税桌面应用程序。代码将是:

AtalaImage img = new AtalaImage("imagefile.tif"); 
AutoDeskewCommand cmd = new AutoDeskewCommand(); 
AtalaImage resultImage = cmd.Apply(img).Image; 
resultImage.Save("result.tif", new TiffEncoder(), null); 

或类似的多页或其他类型的图像。

我们将展示如何将它与我们的观众控制视频整合(在1:14)

http://www.atalasoft.com/products/dotimage/tutorials/capture/lesson4.aspx

这些视频了一系列建筑文档扫描应用程序的一部分:

http://www.atalasoft.com/products/dotimage/tutorials/capture/lesson1.aspx http://www.atalasoft.com/products/dotimage/tutorials/capture/lesson2.aspx http://www.atalasoft.com/products/dotimage/tutorials/capture/lesson3.aspx

+0

如果您发布样本图片,我会通过我们的代码运行它,并让您知道它的工作原理。 – 2010-04-01 19:19:36