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

 更新时间:2025年04月17日 09:28:57   作者:小龙在山东  
PyScreeze 是一个开源的 Python 屏幕截图模块,适用于 Python 2 和 Python 3,该项目由开源技术专家 Al Sweigart 创建,旨在提供一个简单而强大的工具,用于屏幕截图以及图像识别功能,本文就给大家介绍了基于PyScreeze实现截屏和定位功能,需要的朋友可以参考下

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截屏和定位内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何解决Python中ModuleNotFoundError错误

    如何解决Python中ModuleNotFoundError错误

    使用模块时,了解它们的工作方式以及如何将它们导入我们的代码非常重要, 如果没有这种理解或错误,我们可能会遇到不同的错误,本文我们就来讨论一下在Python中解决 ModuleNotFoundError 的方法,希望对大家有所帮助
    2023-12-12
  • Django路由Path方法的实现

    Django路由Path方法的实现

    本文主要介绍了Django路由Path方法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • jupyter 导入csv文件方式

    jupyter 导入csv文件方式

    这篇文章主要介绍了jupyter 导入csv文件方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • PyQt5 pyqt多线程操作入门

    PyQt5 pyqt多线程操作入门

    本篇文章主要介绍了PyQt5 pyqt多线程操作入门,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • python实现批量下载新浪博客的方法

    python实现批量下载新浪博客的方法

    这篇文章主要介绍了python实现批量下载新浪博客的方法,涉及Python页面抓取的相关实现技巧,需要的朋友可以参考下
    2015-06-06
  • python集合比较(交集,并集,差集)方法详解

    python集合比较(交集,并集,差集)方法详解

    python的set,是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素本文讲述了python中set集合的比较方法包括交集,并集,差集
    2018-09-09
  • python numpy.power()数组元素求n次方案例

    python numpy.power()数组元素求n次方案例

    这篇文章主要介绍了python numpy.power()数组元素求n次方案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Django-celery-beat动态添加周期性任务实现过程解析

    Django-celery-beat动态添加周期性任务实现过程解析

    这篇文章主要介绍了Django-celery-beat动态添加周期性任务实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 使用PyTorch/TensorFlow搭建简单全连接神经网络

    使用PyTorch/TensorFlow搭建简单全连接神经网络

    在本篇博客中,我们将介绍如何使用两大深度学习框架——PyTorch 和 TensorFlow,构建一个简单的全连接神经网络,该网络包含输入层、一个隐藏层和输出层,适合初学者理解神经网络的基本构建模块及训练流程,需要的朋友可以参考下
    2025-02-02
  • Python中Selenium模拟JQuery滑动解锁实例

    Python中Selenium模拟JQuery滑动解锁实例

    这篇文章主要介绍了Python中Selenium模拟JQuery滑动解锁实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07

最新评论