Tesseract入门-VS2015下调用Tesseract4.0 +win7 64位系统

本文是基于最近的OCR识别项目学习ocr开源库-tesseract的简单调用,不涉及其余视觉知识。
参考文献:http://blog.csdn.net/u012566751/article/details/54136836
参考库:http://download.csdn.net/download/u010554381/10044876

1.预备工作

下载上述参考库的文件,解压下有!
[解压后的内容]
(https://img-blog.csdn.net/20171030145427018?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDU1NDM4MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
需要安装tesseract4.0 alpha版本,安装过后需要增加环境变量(比较简单,不知道的话可以自行百度),增加内容为“D:****\Tesseract-OCR”,“*”内容为上述安装路径;还需增加一个系统变量,变量名为“TESSDATA_PREFIX”,内容为“D:*\Tesseract-OCR”,该系统变量的意义貌似是可以找到tesseract的dll文件(但我试过了不管用不知道是自己配置是否有问题,有大神知道的话可以告诉我下,我修改)。

2.环境配置

环境配置和opencv类似,创建一个win32工程。

2.1配置包含目录和库目录

在属性页中找到VC++目录,配置其中的包含目录和库目录,如下图所示;
这里写图片描述

2.2配置附加依赖项

这里写图片描述

2.3 DLL文件

此处总感觉有问题,不能正确找到DLL文件的路径,采用笨方法,将相应的DLL文件拷贝到工程的执行目录下,如下图所示:

源文件位置

3 接口调用示例

加入如下代码:该代码来源于tesseract官方
https://github.com/tesseract-ocr/tesseract/wiki/APIExample修改版本

#include <stdio.h>
#include <allheaders.h>
#include <capi.h>void die(const char *errstr) {fputs(errstr, stderr);exit(1);
}int main(int argc, char *argv[]) {TessBaseAPI *handle;PIX *img;char *text;//原图像的绝对路径 if ((img = pixRead("D:\\1.tif")) == NULL)   die("Error reading image\n");handle = TessBaseAPICreate();if (TessBaseAPIInit3(handle, NULL, "eng") != 0)die("Error initialising tesseract\n");TessBaseAPISetImage2(handle, img);if (TessBaseAPIRecognize(handle, NULL) != 0)die("Error in Tesseract recognition\n");if ((text = TessBaseAPIGetUTF8Text(handle)) == NULL)die("Error getting text\n");fputs(text, stdout); //输出OCR识别的文本信息system("pause");TessDeleteText(text);TessBaseAPIEnd(handle);TessBaseAPIDelete(handle);pixDestroy(&img);return 0;
}

4可能遇到的问题和注意事项

4.1错误:This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details

解决方法:
这里写图片描述

4.2注意事项

千万千万不要把库解压到含有中文路径的文件夹下,不然可能会导致一些莫名的错误!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

authconfig命令解析_学习笔记

时间&#xff1a;2017.11.16作者&#xff1a;李强参考&#xff1a;man,info&#xff0c;magedu讲义声明&#xff1a;以下英文纯属个人翻译&#xff0c;英文B级&#xff0c;欢迎纠正&#xff0c;盗版不纠,才能有限&#xff0c;希望不误人子弟为好。1、使用目的与场景先列在这里&…

matlab simulinK笔记06——代数环

★代数环 代数环,就是由于模型的输出反馈到模块或子系统的某个输入端&#xff0c;如果这个输入 是直接馈入的&#xff0c;那么二者在同一个采样点内需得到求解&#xff0c;但又互相依赖,哪一方都不 能完成求解过程&#xff0c;使得解算器无法解算导致错误产生&#xff0c;这样的…

PHP多种序列化/反序列化的方法 (转载)

1. serialize和unserialize函数 这两个是序列化和反序列化PHP中数据的常用函数。 <?php$a array(a > Apple ,b > banana , c > Coconut);//序列化数组 $s serialize($a); echo $s; //输出结果&#xff1a;a:3:{s:1:"a";s:5:"Apple";s:1:&qu…

基于python3的Opencv(一)-打开摄像头显示图像

基于Python3的Opencv学习&#xff1a; import cv2 as cv def video_demo(): #0是代表摄像头编号&#xff0c;只有一个的话默认为0capturecv.VideoCapture(0) while(True):ref,framecapture.read()cv.imshow("1",frame) #等待30ms显示图像&#xff0c;若过程中按“Esc…

.Net中的AOP系列之《方法执行前后——边界切面》

返回《.Net中的AOP》系列学习总目录 本篇目录 边界切面 PostSharp方法边界方法边界 VS 方法拦截ASP.NET HttpModule边界真实案例——检查是否为移动端用户真实案例——缓存小结本系列的源码本人已托管于Coding上&#xff1a;点击查看。 本系列的实验环境&#xff1a;VS 2013 Up…

matlab simulink笔记06 —— 利用simulink求解微分方程/simulink框图与控制系统框图的区别

目录 1.利用integrator求解微分方程 1.1求解步骤 1.2例子 2.simulink框图与控制系统框图的区别 本人刚开始学习simulink,总是会将simulink框图和控制系统框图混淆,导致最后不能正确的根据simulink框图得到相应的微

ubuntu搭建svn、git遇到的问题及解决办法

不错的git笔记博客&#xff1a; http://www.cnblogs.com/wanqieddy/category/406859.html http://blog.csdn.net/zxncvb/article/details/22153019 Git学习教程&#xff08;六&#xff09;Git日志 http://fsjoy.blog.51cto.com/318484/245261/ 图解git http://my.oschina.net/x…

PHP IDE phpstorm 快捷键

这篇文章主要介绍了PHP IDE phpstorm 常用快捷键,本文分别列出了mac系统和Windows系统下的phpstorm快捷键,需要的朋友可以参考下 一、mac电脑phpstorm快捷键 command a 全选 command c 复制 command v 粘贴 command z 撤消 command k 代码搜索 command l 输入行号跳到某一…

Opencv SolvePnP调用实战

1.环境说明与应用说明 VS2015opencv3.4&#xff0c;实际应用在MFC环境中&#xff01;主要是用来做定位&#xff0c;利用平面靶标给机器人的工具快换提供定位信息 2.实际调用 CV_EXPORTS_W bool solvePnP( InputArray objectPoints, InputArray imagePoints, …

matlab simulink笔记05 —— 积分模块

1.连续积分模块&#xff1a;integrator 例子见&#xff1a;matlab simulink笔记06 —— 利用simulink求解微分方程/simulink框图与控制系统框图的区别

squid在企业网中的应用

一&#xff1a;squid简介&#xff1a; Squid是一种在Linux系统下使用的优秀的代理服务器软件。Squid是一个缓存internet数据的一个软件&#xff0c;它接收用户的下载申请&#xff0c;并自动处理所下载的数据。也就是说&#xff0c;当一个用户想要下载一个主页时&#xff0c;它向…

win10+tensorflow faster-RCNN 训练自己的数据集

首先&#xff0c;感谢博客上各路大佬的无私奉献&#xff01;但是也不得不吐槽下&#xff0c;大佬些写博客的时候能尽量写的对小白友好一点吗&#xff1f;期间遇到各种坑&#xff0c;说多了都是泪啊&#xff01;话不多说&#xff0c;上正题&#xff01; 环境&#xff1a;win10a…

matlab simulnk笔记07——模块(接地模块group、终止模块terminal、信号合并mux与分解模块demux)

1.接地模块group 2.终止模块terminal 3.信号合并mux 注意:合并仅仅指的是物理上的合并,数学上真正意义上的合并,只是将多个信号放在同一个管道上统一传输给显示终端,但是每个信号之间互不影响,是相

二叉搜索树的插入与删除图解

一、二叉搜索树&#xff08;BSTree&#xff09;的概念 二叉搜索树又被称为二叉排序树&#xff0c;那么它本身也是一棵二叉树&#xff0c;那么满足以下性质的二叉树就是二叉搜索树&#xff1a;1、若左子树不为空&#xff0c;则左子树上左右节点的值都小于根节点的值2、若它的右子…

AlienVault Ossim各版本镜像下载地址

AlienVault Ossim各版本镜像下载地址 OSSIM V5.0.3 ISO网盘下载地址 了解Ossim的架构、工作原理和使用方法可以参考我的新书以及http://edu.51cto.com/course/course_id-1186.html 这里提供的视频教程。 本文转自 李晨光 51CTO博客&#xff0c;原文链接&#xff1a;http://blo…

面试总结

lru算法&#xff1a;最近最少使用  1.新数据插入到链表头部&#xff1b;  2.每当缓存命中&#xff08;即缓存数据被访问&#xff09;&#xff0c;则将数据移到链表头部&#xff1b;  3.当链表满的时候&#xff0c;将链表尾部的数据丢弃。 自定义控件&#xff1a; 1.measu…

win10+anaconda安装tensorflow和keras遇到的坑小结

win10下利用anaconda安装tensorflow和keras的教程都大同小异&#xff08;针对CPU版本&#xff0c;我的gpu是1050TI的MAX-Q&#xff0c;不知为啥一直没安装成功&#xff09;&#xff0c;下面简单说下步骤。 一 Anaconda安装 一般来说&#xff0c;python选择3.6的&#xff0c;目…

rman备份恢复命令之switch

一 switch 命令 1 switch命令用途 更新数据文件名为rman下镜像拷贝时指定的数据文件名 更新数据文件名为 set newname 命令指定的名字。 2 switch 命令使用前提条件 rman 必须连接到目标数据库 当switch tablespaces、datafiles、tempfiles时&#xff0c;这些文件必须离线 当…

服务核心 - 工具类

虽然类名称为CWHService&#xff0c;我理解更多的是工具函数。 主要接口功能有&#xff1a; 1&#xff09;SetClipboardString设置字符串到windows剪贴板 2&#xff09;GetMachineID获取机器标识&#xff0c;网卡地址MD5加密&#xff1b; 3&#xff09;GetMachineIDEx获取机器标…