sikulix——ocr

来源:互联网 发布:java工程师工作累不累 编辑:程序博客网 时间:2024/06/05 00:35

ocr的意思是识别图片中的文字,目前国内的话,有百度ai提供的服务,但是是收费的。国外有开源的tesseract。sikulix上帝之眼也支持ocr,底层是tesseract的实现。这两者都是免费的。

        sikulix的ocr搭建比较坑,这里记录一下踩过的坑。应为ocr并不是直接安装好就可以用,这里试了好久才发现如何搭建才能正常使用

        1、如果之前安装了sikulix但是没有选择ocr,删除C:\Users\Administrator\AppData\Roaming\Sikulix之下的所有文件

        2、重新安装,选择IDE,或者java插件再选择ocr,单独选择ocr是无法安装的。

        3、安装好后,进入到C:\Users\Administrator\AppData\Roaming\Sikulix\SikulixDownloads文件夹下,解压字库文件tesseract-ocr-3.02.eng.tar.gz

        4、新建C:\Users\Administrator\AppData\Roaming\Sikulix\SikulixTesseract\tessdata文件夹

        5、将第三步解压的字库拷贝到第四步的文件夹中

        6、这个时候可以识别出英文和数字了,但是想要识别中文,还需要下载中文字库,下载完后更新文件名为eng.traineddata,拷贝到相应的文件夹中

        

        最后举一个例子

public static void main(String[] args) throws Exception {long time = System.currentTimeMillis();Screen screen = new Screen();Region addressListRegion = new Region(736, 273, 256, 20);ScreenImage addressListImg = screen.capture(addressListRegion);Settings.OcrTextSearch = true;                Settings.OcrTextRead = true;                System.out.println(TextRecognizer.getInstance().recognize(addressListImg));System.out.println(System.currentTimeMillis()-time);}

      可惜的是,目前对中文的支持不是太好,这需要进行大量的训练。毕竟人工智能建立在数据的基础上。相信百度的小度机器人也是进行了大量的训练。


原创粉丝点击