如何使用OCR来进行屏幕图像的捕捉和剪切:25天25个项目

发布时间:2016/12/26 00:12 发布者:Richard.Ma

返回博客中心

作为LEAD Technologies 25周年纪念的一部分,我们正在搞一个“25天收集25个项目来展示LEAD功能强度和易用性”的活动。今天要展示的项目来自于阿明的分享。

OCR的剪切截图

clip_image001

选择截图区域

clip_image003

显示截图结果

clip_image005

 

 

它是做什么的

使用LEADTOOLS第19版,该C#编写的应用程序可以使用OCR来进行屏幕捕捉图像的剪切。

 

所使用的功能

· OCR

· Screen Capture

 

开发进程日志

大家好,我是阿明。我要创建这样一个程序,该程序可以用用户选择的矩形来从电脑屏幕上捕捉图像的程序,然后可以用LEAD的光学字符识别(OCR)技术来提取所捕捉到的图像中的文字。

我要使用VS 2010以 C#进行编码,因为它的项目可以很容易升级到Visual Studio的更高版本。

首先,我要创建一个包含Leadtools.Controls.ImageViewer控件的窗体,以便用它来显示所捕捉到的图像;然后,我还要创建一个用于显示识别结果的文本框。

为了实现屏捕截图功能,我需要使用的是LEADTOOLS 的ScreenCaptureEngine类。

我添加了一个按钮来启动捕捉功能,并且添加了一个事件处理程序来接收所捕获的图像。为实现用户选择式屏捕截图或屏幕剪切功能所需要的全部代码,大约也就有十几条那么长,而且用不了一个小时就能完成。如果没有LEADTOOLS的帮助,想尝试做成一个类似的事情,大多数程序员要花好几天的时间;如果我们再考虑做成一个平滑完美的鼠标控制的用户界面,甚至需要几个星期的时间。

接下来,我要添加的是用来执行OCR的代码。在我们的支持论坛上下载“最小的OCR演示”中的一项,这是一个好的起点。

LEADTOOLS Forum: Minimum OCR Demos

使用该页面上的代码,我也能够在一小时之内实现OCR。用OCR引擎可以从屏捕截图中返回图像,而使用这些图像是非常简单明了的,因为各种LEADTOOLS模块本来就被设计为无缝地协同工作。

由于对大多数屏幕来说,其默认分辨率为每英寸96点,我的代码可以在使用OCR之前将图像分辨率变更为150 DPI。其原因是,在试图识别字符的形状时,OCR会考虑到图像的DPI,并且对OCR来说,150的值是比96更适合的。

最后,我添加了一些花里胡哨的点缀功能,以便将图像或识别结果的文本复制到Windows剪贴板中,然后,我又花了一段时间对代码进行测试、加注和改进。

总而言之,整个程序我花了不到6小时的时间来完成出。

请注意,附带OCR和屏幕截图演示程序的LEADTOOLS第19版具有更多先进的功能。该演示程序与工具包一起安装在这些文件夹中:

LEADTOOLS 19\Examples\DotNet\CS\OcrScreenCaptureDemo
LEADTOOLS 19\Examples\DotNet\VB\OcrScreenCaptureDemo

 

下载该项目

该示例项目的源代码您可以点击这里进行下载。

14 OCR Screen Capture.zip (11.55 kb)

要运行该项目,请将其解压缩到该目录下:C:\LEADTOOLS 19\Examples\DotNet\CS directory。

 

支持

关于其他产品的更多信息,请访问我们的官方网站

欢迎下载免费的全功能评估版SDK,全功能试用版中有这个例子的全部源代码。

同时欢迎您使用评估版期间的免费技术支持


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网