python获取梦幻西游鼠标偏移坐标

说明:该帖子是为了解决梦幻西游鼠标偏移问题

一、依赖库opencv-python和aircv

自行百度怎么安装,连接是aircv官网       https://pypi.org/project/aircv/

后面链接是关于aircv如何使用 https://github.com/NetEaseGame/aircv

二、解决思路

使用ImageGrab抓取梦幻窗口游戏图片,对比本地保存的鼠标图

 

python获取梦幻西游鼠标偏移坐标_第1张图片

相似度设置0.8以上,程序运行之后返回坐标。

# - when found
@return {'point': (203, 245), 'rectangle': [(160, 24), (161, 66), (270, 66), (269, 24)], 'confidence': 0.09}
# point: 查找到的点
# rectangle: 目标图像周围四个点的坐标
# confidence: 查找图片匹配成功的特征点 除以 总的特征点

三、代码

我把抓取的图片存在桌面命名为youxi.png,对比图片命名为shubiao.png

import aircv as ac


def matchImg(imgsrc, imgobj, confidencevalue=0.5):  # imgsrc=原始图像,imgobj=待查找的图片
    imsrc = ac.imread('C:\\Users\\Administrator\\Desktop\\youxi.png')
    imobj = ac.imread('C:\\Users\\Administrator\\Desktop\\shubiao.png')
    match_result = ac.find_template(imsrc, imobj,
                                    0.8)  # {'confidence': 0.5435812473297119, 'rectangle': ((394, 384), (394, 416), (450, 384), (450, 416)), 'result': (422.0, 400.0)}
    if match_result is not None:
        match_result['shape'] = (imsrc.shape[1], imsrc.shape[0])  # 0为高,1为宽
        print(match_result)

    return match_result

if __name__ == '__main__':
    matchImg(0,0)

运行结果:

{'result': (319.5, 285.0), 'rectangle': ((306, 272), (306, 298), (333, 272), (333, 298)), 'confidence': 0.9638850688934326, 'shape': (806, 628)}

结果分析:直接拿到rectangle的第一个值就行,shape的值就是窗口大小。

你可能感兴趣的:(代码,python)