65.9K
CodeProject 正在变化。 阅读更多。
Home

随时随地扫描任何内容

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2015年9月1日

CPOL

9分钟阅读

viewsIcon

33921

LEADTOOLS 是一个图像处理工具包,可用于帮助最终用户将几乎任何相机变成功能增强的扫描仪,并以卓越的图像质量“扫描”任何内容,随时随地。

引言

随时随地扫描任何内容。这是许多人的梦想,而如今的技术正在使其成为现实。使用智能手机上的相机等设备捕获信息具有灵活性,并且可以做到传统扫描仪无法做到的事情。借助正确的图像处理工具,相机可以以极高的质量捕获收据、文件、名片、白板、大幅面图纸、期刊页面,当然还有商业伙伴和朋友的快照。

在建议客户停止使用收据和名片扫描仪而专门使用相机之前,开发人员需要了解相机和扫描仪之间的主要区别以及这些区别对捕获图像的影响。

相机与扫描仪的区别

定位是相机和扫描仪之间的一个主要区别。使用扫描仪时,用户无法控制到对象的距离、位置或角度,而使用相机时,用户则可以控制。使用相机时的这种额外控制为用户提供了捕获任何内容的灵活性,但也带来了一系列传统扫描仪使用时不存在的问题。例如,根据用户放置相机的方式,矩形纸张文档可能会呈现为梯形或其他四边形。相比之下,扫描仪始终以其原始几何形状捕获文档。

相机和扫描仪之间的另一个主要区别是照明。使用相机时,不同的光源会导致照明变化。这会影响照片中颜色的饱和度、强度和色温。不一致的照明会导致照片的某些区域比其他区域更暗。照明的色温可以将白色背景变成灰白色。使用闪光灯可能有所帮助,但也会产生眩光。另一方面,扫描仪在每次扫描时都能始终提供相同的光源和条件,因此颜色一致,背景是白色的,并且没有眩光。

最常见的问题和解决方案

开发人员克服这些差异的唯一方法是正确使用图像处理。LEADTOOLS 是一个适用于 Windows、WinRT、Windows Phone、iOS、OS X、Android、Linux 和 Web 的成像 SDK,包含 200 多个图像处理功能。在某些情况下,开发人员可能希望在拍摄图像之前,在实时捕获预览期间执行处理。或者,如果用户使用的是带有 Wi-Fi 内存卡的智能手机或数码相机,则处理可以在任何可以访问图像的计算机或设备上进行。

模糊的图像

大多数时候,相机都能很好地自动对焦并捕获清晰的图像。但是,存在一些影响所有相机的情况,例如弱光、相机拿得太近、移动甚至点击屏幕上的错误位置,都可能导致图像失焦。由于相机屏幕小且捕获高分辨率图像,除非用户停止并放大图像,否则他们可能不会意识到照片已失焦。为了解决这个问题,开发人员可以使用 LEADTOOLS 模糊检测功能来确定图像是否模糊,而不会减慢用户速度。

左侧的照片被缩放到适合屏幕,看起来清晰可读。右侧,当以实际尺寸查看时,很容易看出图像是模糊的。通过几行简单的代码,LEADTOOLS 即可消除用户需要放大照片的麻烦。

bool IsBlurry( RasterImage image )
{
   var cmd = new BlurDetectionCommand();
   cmd.Run( image );
   return cmd.Blurred;
}

眩光检测

光滑的纸张和玻璃是眩光的常见原因,可能导致照片无法使用。LEADTOOLS 包含一个眩光检测功能,可自动查找并突出显示眩光。开发人员可以在捕获预览中进行眩光检测,不允许捕获,或者突出显示眩光以使其对用户更加明显,让他们自己决定眩光是否可接受。

使用以下代码,LEADTOOLS 可以检测到眩光,添加一个感兴趣的区域,并用虚线矩形标记该区域,如下图所示。

bool DetectGlare( RasterImage image )
{
   // a region is added to the image if there is a glare
   new GlareDetectionCommand().Run( image );
   return image.HasRegion;
}

透视畸变

如果用户没有将相机放置在与对象平行的平面上,那么照片就会出现透视畸变。这种畸变会将矩形文档扭曲成不规则的四边形。此外,这种畸变还会歪斜照片中的文本和线条。

透视矫正

LEADTOOLS 透视矫正功能可自动校正此类畸变并裁剪掉背景。

在左侧未处理的照片中,透视畸变使得收据顶部比底部窄。右侧图像是 LEADTOOLS 透视矫正的结果,收据成为一个完美的矩形。令人惊讶的是,修复此问题并移除背景所需的所有操作仅仅是一行代码。LEADTOOLS 处理其余部分,除了图像本身,无需用户输入。

void FixPerspectiveDistortion( RasterImage image )
{
   new PerspectiveDeskewCommand().Run( image );
}

梯形校正

如果照片过度失真或对象与背景之间的对比度很低,LEADTOOLS 透视矫正功能可能无法自动校正畸变。在这种情况下,可以使用 LEADTOOLS 梯形图像处理功能并结合用户输入来校正和裁剪照片。

 

 

 

在左侧的照片中,用户提供了文档的四个角点。这些点被传递给 LEADTOOLS 梯形功能,以生成右侧的图像。

RasterImage FixKeyStone( RasterImage image, LeadPoint[] polyPoints )
{
   var command = new KeyStoneCommand( polyPoints );
   command.Run( image );
   return command.TransformedBitmap == null ? 
      null : command.TransformedBitmap.Clone();
}

照明和颜色校正

照明的变化会影响照片中颜色的饱和度、强度和色温。为了校正和标准化彩色照片,LEADTOOLS 包含了许多颜色校正图像处理功能。

拉伸亮度

拉伸亮度是一个很好的自动图像处理功能,适用于光线不足且图像太暗的照片。该功能通过居中、最大化和按比例调整亮度值的范围来自动增加照片的对比度。

左侧的照片是在弱光下拍摄的。右侧的图像更明亮,更容易阅读。

void StretchIntensity( RasterImage image )
{
   new StretchIntensityCommand().Run( image );
}

更多颜色校正

LEADTOOLS 包含大量额外的颜色校正图像处理功能。其中包括几个用于更改亮度、对比度、伽马、色相和色温的基本功能,以及包括色彩级别和照明调整的高级功能。有关更多信息,包括前后图像链接,请参阅 LEADTOOLS 颜色校正 SDK 技术页面。

自动二值化

大多数文档是黑白的。然而,照明的变化可能会在黑白文档的图像中增加颜色,从而降低人类和机器的可读性。开发人员可以使用 LEADTOOLS 自动二值化功能去除拍照时引入的颜色,并将文档恢复为黑白。自动二值化使照片更容易被人和 OCR 阅读。

左侧的照片通过以下一行代码转换为右侧的图像。

void AutoBinarize( RasterImage image )
{
   new AutoBinarizeCommand().Run( image );
}

其他专业处理和检测功能

LEADTOOLS 还具有专门的检测功能,可以查找照片中的特定类型伪影,包括条形码、MICR 线和机器可读区 (MRZ)。这些图像处理功能使相机不仅仅是拍照设备,并将其功能扩展到传统扫描仪之外。在拥挤的应用商店中,这些功能可以使您的应用脱颖而出,最终用户会注意到实现了这些功能的应用程序。

条形码检测和读取

条形码几乎存在于所有物品上。解码条形码可以打开许多可能性,例如打开 QR 码中编码的网页链接,或根据产品上的 UPC 条形码查找产品信息。LEADTOOLS 条形码 SDK 全面支持解码照片和扫描图像中的 100 多种不同条形码类型和子类型,例如 UPC、EAN、Code 128、QR Code、Data Matrix 和 PDF417。

为了确定照片是否包含条形码,LEADTOOLS 条形码读取预处理功能可以快速预处理照片并找到条形码。它会检测条形码的位置和类型,并将图像转换为黑白。

以下代码将找到条形码并将条形码的位置设置为图像中的感兴趣区域。

void FindBarcode( RasterImage image )
{
   var barcodeCommand = new BarCodeReadPreprocessCommand();
   barcodeCommand.Run( image );
   if ( barcodeCommand.BarcodeLocation != null )
   {
      image.AddRectangleToRegion(
         null,
         barcodeCommand.BarcodeLocation,
         RasterRegionCombineMode.Set );
   }
}

MICR 检测和支票处理

MICR(磁性油墨字符识别)是许多可转让票据(如支票、汇票和 WIC 代金券)中使用的公认和标准化的技术。银行和票据交换所正在用基于 OCR 的扫描仪替换或补充旧的 MICR 扫描仪,以提高准确性并减少击键次数。此外,银行还允许客户使用智能手机拍摄的照片存入支票。使用 LEADTOOLS 的开发人员可以查找和解析照片及扫描图像中的 MICR 线。

LEADTOOLS 在上图的图片中检测并突出显示了 MICR 线,并且可以执行包括 OCR 在内的额外识别,以提取路由、账户、支票号码、收款人和金额等信息。有关处理支票照片或扫描图像的更多信息,以及指向实时在线 MICR 演示的链接,请访问 LEADTOOLS MICR 和支票处理 SDK 技术页面。

MRZ 检测和护照处理

国际标准化组织已对机器可读区 (MRZ) 进行了标准化,大多数国家/地区在其护照和其他旅行证件中使用它们。使用 LEADTOOLS,开发人员可以将相机变成护照处理扫描仪。

LEADTOOLS 检测 MRZ 字段并将其设为感兴趣区域,如上图所示。LEADTOOLS 还可以解码 MRZ 信息。有关护照处理的更多信息,请访问 LEADTOOLS 护照处理 SDK 技术页面,其中包含指向实时护照处理 HTML5 演示的链接。

护照图片来源:https://commons.wikimedia.org/wiki/File:Czech_passport_2006_MRZ_data.jpg

结论

LEADTOOLS 是一个成像工具包,提供 200 多个图像处理功能,支持桌面、移动和 Web 等多种平台。借助这种强大的功能和灵活性,开发人员可以快速开发应用程序或系统,使最终用户能够将几乎任何相机变成功能增强的扫描仪,并以卓越的图像质量“扫描”任何内容,随时随地。

下载详细示例

您可以下载功能齐全的评估 SDK 和包含源代码的演示,其中包含上述讨论的功能。

  • LEADTOOLS 免费 60 天试用
  • 浏览 LEADTOOLS 示例文件夹(例如,C:\LEADTOOLS 19\Examples\),您可以在其中找到 LEADTOOLS 中这些以及更多技术的示例项目。

支持

需要帮助才能上手吗?  联系我们的支持团队 获取免费技术支持!有关定价或许可问题,您可以联系我们的销售团队(sales@leadtools.com)或致电 +1-704-332-5532。

© . All rights reserved.