LeadTools提供了Leadtools.ImageProcessing.Core.DeskewCommand类,可以自动拉直扫描的文档,完成倾斜校正。文档图像可以旋转多达20度,这个命令类包含特殊的算法,可以完成银行支票和线条检测倾斜校正的功能。此类在Document\Medical工具包中可用。
若您想要使用上面提到的特殊算法,需将(DeskewCommandFlags.UseCheckDeskew|DeskewCommandFlags.UseLineDetectionCheckDeskew)添加到Flags属性。
注意:
- 若Flags属性或构造函数的flags参数包含DeskewCommandFlags.ReturnAngleOnly,这个命令会在不旋转图像的情况下更新Angle属性。
- 每个方向的计算旋转限制在20度,这个命令主要用于图像,例如扫描的文档,主要为右横线的文本。对于其他类型的图像,结果较难预测。
- 如果角度非常小,这个命令包含了一个选项可以跳过倾斜校正。
- 此命令不支持12位、16位灰度图像和48位、64位彩色图像。为此种情况时,命令不会抛出异常。
- 此命令支持有签名/无签名的数据图像。
- 此命令不支持32为灰度图像
- 此命令已扩展可用于银行支票图像。
以下为使用DeskewCommand的代码片段:
1: // 加载图像 2: RasterCodecs codecs = new RasterCodecs; 3: codecs.ThrowExceptionsOnInvalidImages = true; 4: RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Clean.tif")); 5: 6: // 准备命令 7: DeskewCommand command = new DeskewCommand; 8: 9: //图像的倾斜校正 10: command.Flags = DeskewCommandFlags.DeskewImage | DeskewCommandFlags.DoNotFillExposedArea; 11: command.Run(image)
转载来自于http://blog.gcpowertools.com.cn/post/2014/09/12/deskew-by-leadtools.aspx
本站文章除注明转载外,均为本站原创或翻译