日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

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

發(fā)布時間:2024/3/13 python 102 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python识别文字坐标_【Python 教程】使用 Python 和大漠插件进行文字识别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

家里有一臺win7系統(tǒng)的電腦,平時可以用來玩玩游戲消磨時間。但是有時候有一些重復(fù)的操作實(shí)在是無趣,所以打算寫個腳本,讓其自動化執(zhí)行。

最終的目標(biāo)就是把游戲里一些常用的操作都集合到腳本中去,且無序隨機(jī)執(zhí)行,模擬真人操作。點(diǎn)擊此處查看原文。

大漠插件介紹

因?yàn)槭褂玫氖荳indows系統(tǒng),所以好多工作之前已經(jīng)有大佬完成了。幾年前使用過按鍵精靈的同學(xué)一定對大漠插件不陌生,其功能之強(qiáng)大,可以用來完成很多操作。

從文檔可以看出,功能實(shí)在太多了,覆蓋了方方面面。我基本使用到的就是圖片識別,文字識別,鍵鼠操作等,最強(qiáng)大的功能莫過于后臺操作,也就是窗口最小化時不影響鼠標(biāo)鍵盤的操作。想象一下,游戲在后臺自動執(zhí)行,前臺繼續(xù)做工作,互不干擾。

我現(xiàn)在需要做的就是將大漠插件使用python而不是按鍵精靈讓其工作,因?yàn)榘存I精靈這類軟件很容易被查出來。

文字識別

圖像轉(zhuǎn)文字需要三個步驟。

拿到圖片

二值化

使用字庫進(jìn)行識別

當(dāng)這三步完成的時候,文字順理成章就被識別出來了。

使用大漠插件的好處是每次識別不需要將識別的圖片保存到本地,而是給定屏幕上的范圍就可以識別了。

現(xiàn)在我們按步驟操作一波。

拿到圖片,獲取偏色列表

我們需要識別這張圖片中的“3”,“0”,“/”,“2”,“7”。

使用大漠偏色計(jì)算器計(jì)算偏色。

具體步驟是:

先抓圖,獲取圖片

識別數(shù)字。將鼠標(biāo)移到需要識別的數(shù)字的顏色部分(例如這個圖片背景是棕色,文字是黑色,將鼠標(biāo)移到黑色部分,稍后的二值化就是將黑色部分突出顯示)。

點(diǎn)擊“根據(jù)顏色列表的第一個和RGB顏色偏差添加顏色到顏色列表”,會自動生成多個顏色。

點(diǎn)擊計(jì)算偏色。

二值化預(yù)覽區(qū)應(yīng)該可以清晰的看到我們需要識別的數(shù)字了。

具體順序可以配合著這張圖:

如果你覺得識別后的文字還不夠清晰,可以自己修改顏色列表。

這一步操作我們需要拿到偏色列表:514C45-2B2926。這個偏色列表之后用處非常大。

使用大漠綜合工具新建或編輯字庫

二值化顯示的結(jié)果,程序還是不認(rèn)識“3”或“0”,需要我們告訴程序,“3”這個字符對應(yīng)的是數(shù)字3,這樣當(dāng)我們之后識別字符,程序再遇到“3”樣子的字符就會返回3這個數(shù)字。

提取點(diǎn)陣并定義文字,將識別后的結(jié)果與我們想要的結(jié)果做對應(yīng),然后添加到字庫。

簡單描述我們的操作是:

使用浮動抓圖功能,在桌面上找到需要識別的范圍

在第一行RGB,偏色輸入剛才的偏色列表

點(diǎn)擊提取點(diǎn)陣(多個)

打開或新建字庫(txt文件)

定義文字(然后回車)

配合圖片解釋一波:

需要注意的是在提取點(diǎn)陣的時候彈出一個對話框,直接按確認(rèn)就可以。

如果遇到一個預(yù)覽結(jié)果顯示多個字符,兩個字符被認(rèn)為是一個字符的情況,可能是偏色列表不夠嚴(yán)謹(jǐn),重新在判斷偏色吧。

預(yù)覽結(jié)果是“0”,那么就在定義文字一欄輸入0,回車,這樣就做了對應(yīng),并保存到字庫中了。

重復(fù)以上操作,把需要識別的字符都做對應(yīng)。當(dāng)然我介紹的是對于游戲中一些特殊字符,系統(tǒng)無法識別需要自己做對應(yīng)。大漠插件有提供系統(tǒng)字體的字庫,也比較豐富,不一定必須自己造字庫。

配合python返回識別結(jié)果

前面做了這么多工作,說到底還是為了python做準(zhǔn)備。

使用32的python

如果你的電腦里已經(jīng)有了python,不好意思,可能需要重裝。因?yàn)檎{(diào)用大漠插件只能使用python 32位的,不限制python2或3。我使用的是python3.7版本的32位。64位會報錯。

安裝pywin32庫

安裝好32位的python后,安裝pywin32庫來操作大漠插件。

命令行輸入pip install pywin32,等待安裝完成。

注冊大漠插件

下載好大漠插件壓縮包后,需要注冊大漠插件。

在dm.dll文件的同目錄中,使用管理員權(quán)限在cmd里執(zhí)行:

regsvr32 dm.dll

完成注冊。

demo

#!/usr/bin/env python

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

import win32com.client

class DmBase(object):

def __init__(self):

# 調(diào)用大漠插件

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

# 設(shè)定字庫文件,建議在初始化中調(diào)用,比較耗時

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調(diào)用大漠插件識別文字的操作。

總結(jié)

以上是生活随笔為你收集整理的python识别文字坐标_【Python 教程】使用 Python 和大漠插件进行文字识别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。