家里有一台win7系统的电脑,平时可以用来玩玩游戏消磨时间。但是有时候有一些重复的操作实在是无趣,所以打算写个脚本,让其自动化执行。

最终的目标就是把游戏里一些常用的操作都集合到脚本中去,且无序随机执行,模拟真人操作。点击此处查看原文。

大漠插件介绍

因为使用的是Windows系统,所以好多工作之前已经有大佬完成了。几年前使用过按键精灵的同学一定对大漠插件不陌生,其功能之强大,可以用来完成很多操作。

从文档可以看出,功能实在太多了,覆盖了方方面面。我基本使用到的就是图片识别,文字识别,键鼠操作等,最强大的功能莫过于后台操作,也就是窗口最小化时不影响鼠标键盘的操作。想象一下,游戏在后台自动执行,前台继续做工作,互不干扰。

我现在需要做的就是将大漠插件使用python而不是按键精灵让其工作,因为按键精灵这类软件很容易被查出来。

文字识别

图像转文字需要三个步骤。

拿到图片

二值化

使用字库进行识别

当这三步完成的时候,文字顺理成章就被识别出来了。

使用大漠插件的好处是每次识别不需要将识别的图片保存到本地,而是给定屏幕上的范围就可以识别了。

现在我们按步骤操作一波。

拿到图片,获取偏色列表

我们需要识别这张图片中的“3”,“0”,“/”,“2”,“7”。

使用大漠偏色计算器计算偏色。

具体步骤是:

先抓图,获取图片

识别数字。将鼠标移到需要识别的数字的颜色部分(例如这个图片背景是棕色,文字是黑色,将鼠标移到黑色部分,稍后的二值化就是将黑色部分突出显示)。

点击“根据颜色列表的第一个和RGB颜色偏差添加颜色到颜色列表”,会自动生成多个颜色。

点击计算偏色。

二值化预览区应该可以清晰的看到我们需要识别的数字了。

具体顺序可以配合着这张图:

如果你觉得识别后的文字还不够清晰,可以自己修改颜色列表。

这一步操作我们需要拿到偏色列表:514C45-2B2926。这个偏色列表之后用处非常大。

使用大漠综合工具新建或编辑字库

二值化显示的结果,程序还是不认识“3”或“0”,需要我们告诉程序,“3”这个字符对应的是数字3,这样当我们之后识别字符,程序再遇到“3”样子的字符就会返回3这个数字。

提取点阵并定义文字,将识别后的结果与我们想要的结果做对应,然后添加到字库。

简单描述我们的操作是:

使用浮动抓图功能,在桌面上找到需要识别的范围

在第一行RGB,偏色输入刚才的偏色列表

点击提取点阵(多个)

打开或新建字库(txt文件)

定义文字(然后回车)

配合图片解释一波:

需要注意的是在提取点阵的时候弹出一个对话框,直接按确认就可以。

如果遇到一个预览结果显示多个字符,两个字符被认为是一个字符的情况,可能是偏色列表不够严谨,重新在判断偏色吧。

预览结果是“0”,那么就在定义文字一栏输入0,回车,这样就做了对应,并保存到字库中了。

重复以上操作,把需要识别的字符都做对应。当然我介绍的是对于游戏中一些特殊字符,系统无法识别需要自己做对应。大漠插件有提供系统字体的字库,也比较丰富,不一定必须自己造字库。

配合python返回识别结果

前面做了这么多工作,说到底还是为了python做准备。

使用32的python

如果你的电脑里已经有了python,不好意思,可能需要重装。因为调用大漠插件只能使用python 32位的,不限制python2或3。我使用的是python3.7版本的32位。64位会报错。

安装pywin32库

安装好32位的python后,安装pywin32库来操作大漠插件。

命令行输入pip install pywin32,等待安装完成。

注册大漠插件

下载好大漠插件压缩包后,需要注册大漠插件。

在dm.dll文件的同目录中,使用管理员权限在cmd里执行:

regsvr32 dm.dll

完成注册。

demo

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import win32com.client

class DmBase(object):

def __init__(self):

# 调用大漠插件

self.dm = win32com.client.Dispatch("dm.dmsoft")

# 设定字库文件,建议在初始化中调用,比较耗时

self.dm.setDict(0, "C:\\Users\\Li\\Desktop\\help\\data\\num.txt")

# 使用字库

self.dm.useDict(0)

def ocr(self, x1, y1, x2, y2, color_format, sim=0.9):

"""

文字识别

- Args:

x1 (int): 左上x

y1 (int): 左上y

x2 (int): 右下x

y2 (int): 右下y

color_format (str): 偏色列表

sim (float): 相似度,范围 0.1-1.0

- Return:

识别的字符串

"""

return self.dm.Ocr(x1, y1, x2, y2, color_format, sim)

这样就完成了python调用大漠插件识别文字的操作。

python识别文字坐标_【Python 教程】使用 Python 和大漠插件进行文字识别相关推荐

  1. python微信跳一跳_[小白教程] 用Python占领微信跳一跳排行榜

    文/帅朋 微信新版 6.6.1 加入了「跳一跳」这个游戏功能,并迅速在朋友圈之间火了起来.很多人为了能够跳到更高的分数而努力的奋斗着.那么今天我就来蹭一蹭「跳一跳」的热度,给大家提供一个方法让你快速的 ...

  2. python安卓app开发_[实例教程] 用python开发android应用

    Python是动态语言,比较简洁.Android不直接支持使用python开发应用,需要使用其它中间件或者库.PythonForAndroid提供了在android平台上对python语言的支持:CL ...

  3. python识别文字软件_【Python 教程】使用 Python 和大漠插件进行文字识别

    家里有一台win7系统的电脑,平时可以用来玩玩游戏消磨时间.但是有时候有一些重复的操作实在是无趣,所以打算写个脚本,让其自动化执行. 最终的目标就是把游戏里一些常用的操作都集合到脚本中去,且无序随机执 ...

  4. 按键精灵调用python插件_【Python 教程】使用 Python 和大漠插件进行文字识别

    家里有一台win7系统的电脑,平时可以用来玩玩游戏消磨时间.但是有时候有一些重复的操作实在是无趣,所以打算写个脚本,让其自动化执行. 最终的目标就是把游戏里一些常用的操作都集合到脚本中去,且无序随机执 ...

  5. python编码转换语句_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

  6. python画美女代码_教你用python爬取网站美女图(附代码及教程)

    我前几篇文章都是说一些python爬虫库的用法,还没有说怎样利用好这些知识玩一些好玩的东西.那我今天带大家玩好玩又刺激的,嘻嘻!对了,requests库和正则表达式很重要的,一定要学会!一定要学会!! ...

  7. python新版下载安装_各种版本的Python下载安装教程

    python从17年开始大火,自然想学python的同学就多了,小编整理了这篇文章,从python的功能介绍.各系统最新版本python下载.python全部版本下载.python下载后安装教程以及p ...

  8. 包无法安装_详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel

    详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel 注意:下列教程为 Windows7 64位:Windows 10有部分步骤有差异,请参考使用! 01 下载Python程序 ...

  9. python split函数 空格_最易懂的Python新手教程:从基础语法到代码详解

    导读:本文立足基础,讲解Python和PyCharm的安装,及Python最简单的语法基础和爬虫技术中所需的Python语法. 作者:罗攀 蒋仟 如需转载请联系华章科技 本文涉及的主要知识点如下: P ...

最新文章

  1. C#项目单步调试莫名结束问题
  2. 深入理解javascript系列(十七):函数柯里化
  3. 科普:关于ES版的CPU(正显、不显、QS等)
  4. HTTP代理原理探索
  5. 用友畅捷通T+漏洞学习——DownloadProxy.aspx 任意文件读取漏洞
  6. uiuc大学计算机排名2019,2019年QS世界大学排名伊利诺伊大学香槟分校排名第71
  7. 移动建站工具(一):分秒钟将Web网站移动化
  8. Flutter-图表显示charts_flutter
  9. 便笺Sticky note常用快捷键
  10. Java打印带边框的乘法口诀表_Java 面试 - 打印九九乘法口诀表
  11. http://www.sciencedirect.com/ 外文文献免费全文下载方法
  12. 获取token的两种方法
  13. 三玖天下第一!让三玖陪你写代码(为VScode加入背景图片)
  14. 什么是云存储,是怎么服务大家的,云存储有什么优点和缺点?
  15. 网页批量更新快照软件-百度快照更新优化
  16. ElasticSearch: master,data,client三类节点区别及节点分配简单例举
  17. 使用STVP菜单乱码阴影很乱变坏等情况
  18. Bartender 4 for Mac(菜单栏应用图标管理)
  19. jetBrains 最新 lisence server
  20. 自动生成网络拓扑图的步骤

热门文章

  1. P1413 坚果保龄球
  2. 查看IP和MAC地址的命令
  3. oracle自带加加解密工具的使用一例
  4. amd为什么还用针脚_为什么AMD的CPU不采用LGA封装技术?还在继续用针脚?
  5. MySQL异常 Incorrect string value: '\xE8\xB5\xB5\xE6\xB4\x8B' for column at row的解决方案
  6. 人民币金额由阿拉伯数值转换成汉字大写数值的函数
  7. 家卫士扫地机器人好吗_谁用过家卫士 S320扫地机器人,说说感受
  8. 1.1 嵌入式系统的定义和组成
  9. 等我装完B 我再收拾你 Wating me to fuck you
  10. 神秘的程序员6 没事笑一笑