当前位置: 代码网 > it编程>前端脚本>Python > 基于PyScreeze实现截屏和定位功能

基于PyScreeze实现截屏和定位功能

2025年04月17日 Python 我要评论
pyscreeze 是一个简单的跨平台截图模块,支持 python3。安装pyscreezepip install pyscreeze截取全屏import pyscreeze# 截取全屏im2 = p

pyscreeze 是一个简单的跨平台截图模块,支持 python3。

安装pyscreeze

pip install pyscreeze

截取全屏

import pyscreeze

# 截取全屏
im2 = pyscreeze.screenshot()
# 将截图转换为灰度图
gray_im2 = im2.convert('l')
# 保存灰度图
gray_im2.save('screenshot2.png')

截取指定位置

import pyscreeze

# 截图并保存为png文件
im1 = pyscreeze.screenshot('screenshot1.png', region=(10, 10, 100, 100))

屏幕图片定位

import pyscreeze, pyautogui

# 获取图片位置信息(左上角和宽高)
button7location = pyscreeze.locateonscreen('calc7key.png')
print(button7location)

# 获取图片中心点坐标
button7x, button7y = pyscreeze.center(button7location)
print(button7x, button7y)

# 点击鼠标到图片中心点
pyautogui.click(button7x, button7y)

返回(左、上、宽、高)坐标,表示屏幕上找到的第一个图像实例。如果在屏幕上找不到,则返回none。

屏幕图片居中定位

import pyscreeze, pyautogui
x, y = pyscreeze.locatecenteronscreen('calc7key.png')
pyautogui.click(x, y)

返回 (x, y)坐标,表示屏幕上第一个找到的图像实例的中心。如果在屏幕上找不到,则返回none。

多个屏幕图片定位

import pyscreeze

for pos in pyscreeze.locateallonscreen('calc7key.png', grayscale=false, confidence=0.8):
    print(pos)

locateall 会使用cv2,定位更快速。
这里用到了灰度匹配匹配的置信

匹配的置信度,取值范围是 0 到 1。 0.8 表示匹配度达到 80% 及以上就认为找到了匹配项。

图片模板匹配

import pyscreeze

local = pyscreeze.locate("calc7key.png", "screenshot.png", grayscale=false)
print(local)

在screenshot.png找calc7key.png。

多个图片模板匹配

import pyscreeze

for pos in pyscreeze.locateall("calc7key.png", "screenshot.png", grayscale=false):
    print(pos)

获取像素值

import pyscreeze

rgb = pyscreeze.pixel(100, 200)
print(rgb)

像素匹配

import pyscreeze

ismatch = pyscreeze.pixelmatchescolor(100, 200, (140, 125, 134), tolerance=10)
print(ismatch)  # true or false

到此这篇关于基于pyscreeze实现截屏和定位功能的文章就介绍到这了,更多相关pyscreeze截屏和定位内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com