python识别文字软件_使用Python和大漠插件进行文字识别含软件源码
大漠插件介紹
因為使用的是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 网页编程- Pyramid
- 下一篇: 你可能不知道的跨域解决方案