基于QT的OCR实时文本识别
文章目录
前言
前言:这个题目是由于实际想法诞生的,因为现在我们一般操作的智能终端比如手机,我们眼睛就是获取上面的文本信息,然后用我们的手做出反馈,我一下子就觉得那么这里有文章可做,如果我们摄像头充当人的眼睛,设备相当于人的大脑,再操作可对手机屏幕操作的外设,那不就做到了智能化了嘛,比如说一些抢购,比如说一些信息的监测,包括后面更加智能的一些应用,所以开整!
提示:以下是本篇文章正文内容,下面案例可供参考
项目梳理
首先我们需要整理清楚我们项目思路:
我们采用USB免驱摄像头采集图像画面,使用QT作为开发平台,然后将视频数据转化为百度深度学习API POST时规定的数据类型,POST到百度服务器后,得到识别文本结果,将文本结果实时显示。先在ubuntu上完成,再将该项目移植到imax6ull该平台上。
项目细化
1.首先我们要能成功获取视频数据
最开始的想法是用opencv,用cmake-gui配置。关于cmake-gui可以看我的opencv配置博客。然后还是比较顺利的,很麻烦的在于交叉编译移植到嵌入式平台。
一些项目细节或者说是遇到的问题以及解决方法
make 编译时一些宏定义找不到
解决方法:
链接进去一些库文件,通过名字就能看出是线程相关的 实时的 还有显示加载动态库的
动态库文件缺失libgtk-3.0.so.2
当我在板子上运行程序提醒我这个动态库文件缺失,我当时很奇怪,因为交叉编译好的opencv_lib文件是全部移植到板子上的/usr/lib/下面的,最后发现这个文件是cv动态库文件中某一个文件的依赖文件,当时第一个解决办法是找到哪一个cv库文件的依赖是它,看看自己能否不用这个库文件完成交叉编译,最后发现并不能,而且这也治标不治本。ldd 命令查看动态库依赖,查看后发现报错的第一个缺失的,还有两个文件也缺失,然后最终在交叉编译工具链的库文件下找到了,然后马上readelf -h libgtik-3.0.so.2,查看果然是arm平台下的,添加到板子上,果然跳到第二个文件缺失,这个时候我就知道问题不大了。
在配置时有选项问我们选择的系统
不是linux 或者arm-linux 而是Linux
这是错误的,也是我后面遇