zoukankan      html  css  js  c++  java
  • python调用大漠插件教程05字库

    什么是字库以及字库的作用?

    字库是大漠插件特有的功能,字库通过配合大漠插件中的在图中找字的函数来使用,用来实现在图中识别关键字的作用,以便于后来的操作以及判断。

    怎样创建一个字库,并在字库中添加文字?

    在大漠综合工具的右上角有创建字库的按钮按常规流程操作即可在指定位置创建一个指定名称的字库。

    创建好了字库以后首先确认已经打开字库。

    使用抓图功能(ctrl+1)来抓取要识别的部分(使用方法类似截屏),截取以后会在左边的黑块中显示原图,当选择了调色的方式(左下角的区域)会在右边的黑块中显示出二位图。

    如何选择调色方式,调色的目的是什么?

    调色的方式有三种,第一种是rgb,第二种是hsv,第三种是灰度。个人平时最常用的是rgb模式,我认为一般来说使用这个就够了。(非专业意见)

    调色的目的是使二位图更加的清晰,从而获取更加清晰的字体,提高字体识别率。(偏色是很重要的)

    下一步,提取点阵。

    在二位图已经清晰的情况下,点击界面中的提取点阵,这里分为多个和单个(整体)。一般使用单个,这样识字率比较高。

    当出现‘点’或是一些不连续的字(比如‘的’可能会被识别成白勺),可以单独截取这个字体然后提取单个点阵再将其加入字库中。(列间距和行间距可以根据实际需求调节,一般来说无需调节)

    如何将点阵加入到字库?

    提取点阵以后在右边会出现自己的点阵,根据点阵表示的字在 定义文字 处输入该字,然后点击回车添加到字库。

    已经建立好字库,应该如何使用?

    SetDict函数在绑定窗口时就初始化,这里只初始化一遍因为接口说明中说的很明白,该函数会耗费大量的时候。

    在使用识字函数之前需要先设置当前使用的字库(同一线程中,正在使用的字库只能有一个,例:你有两个字库,字库1中有你想要的字字库2中没有,当前使用的是字库2,那么此时使用FindStrFastEx函数就无法识别到这个字)

    设置字库的函数为UseDict(具体自己参考接口说明),简单地说就是使用那个字库之前先切换一下,到你要找的字库。

    在大漠接口说明中的文字识别中有FindStrFastEx和FindStrFastE还有FindStrFastExS函数可以用来调用以识别字库中的字,返回的坐标为找到字的左上角坐标。

    下面附一张标注的图片,不太全,仅供参考。

     下面简单介绍一个简单的识字函数FindStrFastEx

    FindStrFastEx有7个参数,前两个为要检测区域的左上角坐标xy,然后是右下角左边xy,然后是一个字符串输入你要找的字,然后是寻找时候的调色方式(可以复制大漠综合工具中的色彩描述)格式也为字符串,最后是一个小数表示相似度。

    找到之后返回一个字符串"id,x0,y0|id,x1,y1|......|id,xn,yn"
    比如"0,100,20|2,30,40" 表示找到了两个,第一个,对应的是序号为0的字符串,坐标是(100,20),第二个是序号为2的字符串,坐标(30,40)。

    之后对该字符串进行分割取自己需要的部分即可(这里的坐标指的是左上角坐标)。

  • 相关阅读:
    c#中结构与类的区别(转载CSDN.NET)
    初识.net反射技术(转载cnblogs)
    C#利用反射动态调用类成员[转载]
    页面局部无刷新汇总(转载cnblogs)
    范型的用法大全
    Abstract Class 和 Interface用法
    命名的方法 匿名方法 对委托进行实例化
    ApplyStyle 方法
    类型反射的例子(转载)
    out 和 ref 传递数组参数方法
  • 原文地址:https://www.cnblogs.com/100-rzsyztd/p/13045724.html
Copyright © 2011-2022 走看看