← 返回所有博客文章

原文网址:

https://www.leadtools.com/blog/document-imaging/linux-ocr-barcode-format-conversion-batch-processor-25-projects-25-days/

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

它是做什么的

这个C项目将利用LEADTOOLS第19版来执行OCR、条码识别和文件的转换。

所使用的功能

· OCR

· Barcode

· File Formats

· Linux

 

开发进程日志

大家好,我是内森。我要写这样一个Linux应用程序,该程序可以将OCR、条码识别、以及文件转换整合到一个批处理应用程序中。我已经有相当长一段时间没有用C语言写程序了,所以这应该会很有趣!

既然已经安装好了LEADTOOLS SDK,我会从一些简单的东西入手,以便让自己的C齿轮转动起来。或许我应该从输入验证开始,因为我想确保用户能够正确地使用该应用程序;如果他们还不会使用的话,我会先将使用它的步骤打印出来。

花了几个小时来做这件事情以后,我觉得自己已经可以输入得很熟练了。然后,我想要将所有选项存储进一个结构,然后,如果标志可以传输过去的话,就开始调用那些可以做包括一个头文件在内的LEADTOOLS的所有东西的函数。

我还要继续写一个makefile文件,它可以链接到我们在这个程序中所需要的所有库,所以我不用再继续捣鼓编译,只需要键入“make.”就可以了。

现在,我要写一个可以进行文件转换的函数。这需要一个作为源的char *文件、目标目录、预期的格式,以及一个可以与LEADTOOLS 类型进行通信的结构。

这个大概只用了45分钟时间!我打开目录时遇到了一些问题,但只用了大约35行代码。这包括了我们的源代码目录中每个文件里我们需要转换的所有代码,因此,必须承认对C语言来说这是相当惊人的。

既然这个已经可以运行了,我还要写一个用来进行条码识别的函数。

这个大概花了一个半小时。条码识别这个部分有点儿棘手,因为我需要几个可以从内部调用的辅助函数。即使如此,事情也并不是太糟糕,现在我的程序可以处理任何条形码,还可以将数据写入到一个文本文件中。现在,只要这两个标志可以作为命令行参数传输过去,我就可以对所有文件进行文件转换和条码识别。这实在是太棒了。

现在,最后一点(但并非最不重要的一点)是,我需要做OCR,这其实是一个非常复杂的事情!

这大概花了三个小时,因为我不算是最精通C语言的人。现在我可以对目录中的任何图像进行OCR,也就是光学字符识别,并且可以将文本输出至一个.txt类型的文件中。

然后,我需要做一些代码清洁并添加注解,但这应该只需要20分钟左右。

显然,这个东东能够让我在不到8小时的时间内就把事情收尾了。那么,在一个工作日内我可以写一个批处理应用程序,该程序可以将OCR,条码识别和文件转换的功能全部融合在一起。这对于Linux用户非常有用!编写一个脚本来运行该应用程序,您可以自动完成大量的工作。

在以后的版本中,我可能会将一些代码分离到函数部分,实现一些多线程的性能,并允许在int版本中使用一些格式常量或常用术语(TIF,JPG,PNG等等……) 。

下载该项目

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

支持

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

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

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