前言

遇到一个朋友需求:对股票交易数据进行ocr识别(更好的方法是调用api接口,但是那个数据接口是闭源的,需要逆向),使用Tesseract OCR识别速度在200ms左右,速度不理想。这时候发现了大漠!

大漠介绍

大漠综合插件(dm.dll)采用vc6.0编写,是一款集前后台,文字识别,图色,键鼠,窗口,内存,DX,Call等功能于一身的综合插件。主要用于按键精灵简单游易语言等辅助制作工具,具有识别速度超级快的特点! 采用COM接口编写,适用于所有语言调用。为什么它识别快?

  • 主要采用模板匹配和字库对比方法
  • 预先加载字库到内存,减少识别时的计算量
  • 字库针对常见字体和大小进行了优化

所以要用大漠,需要建立字库,字库建立教程:https://www.cnblogs.com/100-rzsyztd/p/13045724.html

免注册调用

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import ctypes
import win32com.client
import configparser

class pydm:
# 免注册调用
    def __init__(self):
            reg =[注册码]
        reg2 = [附加码]#注册码附加码可以去某宝买,5块钱一个月
        self.obj = ctypes.windll.LoadLibrary(r".\pydamo\DmReg.dll")
        self.obj.SetDllPathW(r".\pydamo\dm.dll"), 0)
        # 创建大漠对象
        self.dm = win32com.client.DispatchEx("dm.dmsoft")
        self.dm.setDict(0, ".\dm_soft.txt")
        # 注册大漠
        res = self.dm.Reg(reg, reg2)
        print("大漠注册返回值: {}".format(res))
        self.dm.useDict(0)

        # 获取大漠版本号
        print(self.dm.ver())

    def ocr(self,x1, y1, x2, y2,ysms,mh=0.9):
      #x1, y1, x2, y2,屏幕区域坐标
      #ysms 颜色范围
      #mh 模糊度
        s = self.dm.Ocr(x1, y1, x2, y2,ysms,mh)
        return s

除此之外,大漠的其他功能都可以使用。具体功能可以阅读大漠使用说明。大漠官方文档:http://www.dmwebsite.net/

标签: none