首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用python从openCV中获取颜色检测结果区域来获取屏幕坐标?

使用Python从OpenCV中获取颜色检测结果区域来获取屏幕坐标的步骤如下:

  1. 导入所需的库和模块:import cv2 import numpy as np from pyautogui import position
  2. 读取屏幕截图并转换为HSV颜色空间:screenshot = cv2.imread('screenshot.png') hsv = cv2.cvtColor(screenshot, cv2.COLOR_BGR2HSV)
  3. 定义颜色范围并创建掩膜:lower_color = np.array([0, 100, 100]) # 设置颜色下限 upper_color = np.array([10, 255, 255]) # 设置颜色上限 mask = cv2.inRange(hsv, lower_color, upper_color) # 创建掩膜
  4. 对掩膜进行形态学操作以去除噪点:kernel = np.ones((5, 5), np.uint8) mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
  5. 寻找颜色区域的轮廓:contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
  6. 遍历轮廓并获取其边界框:for contour in contours: x, y, w, h = cv2.boundingRect(contour) cv2.rectangle(screenshot, (x, y), (x+w, y+h), (0, 255, 0), 2)
  7. 获取屏幕坐标:screen_x, screen_y = position()

完整代码示例:

代码语言:python
代码运行次数:0
复制
import cv2
import numpy as np
from pyautogui import position

# 读取屏幕截图并转换为HSV颜色空间
screenshot = cv2.imread('screenshot.png')
hsv = cv2.cvtColor(screenshot, cv2.COLOR_BGR2HSV)

# 定义颜色范围并创建掩膜
lower_color = np.array([0, 100, 100])  # 设置颜色下限
upper_color = np.array([10, 255, 255])  # 设置颜色上限
mask = cv2.inRange(hsv, lower_color, upper_color)  # 创建掩膜

# 对掩膜进行形态学操作以去除噪点
kernel = np.ones((5, 5), np.uint8)
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)

# 寻找颜色区域的轮廓
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 遍历轮廓并获取其边界框
for contour in contours:
    x, y, w, h = cv2.boundingRect(contour)
    cv2.rectangle(screenshot, (x, y), (x+w, y+h), (0, 255, 0), 2)

# 获取屏幕坐标
screen_x, screen_y = position()

# 显示结果
cv2.imshow('Result', screenshot)
cv2.waitKey(0)
cv2.destroyAllWindows()

注意:在运行代码之前,需要先安装OpenCV和pyautogui库。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

实践干货 | 自动化视觉跟踪

使用 PythonOpenCV 进行颜色检测 我们想做的一件事情就是检测并跟踪某种颜色的物体。为此,我们必须理解一点OpenCV如何翻译颜色的。...关于颜色检测,Henri Dang写了一篇很棒的教程:Color Detection in Python with OpenCV。 通常,我们的相机是使用RGB颜色模式工作的。...最后让我们看看OpenCV如何根据给出的颜色选择出我们的物体。...实时获取物体位置 将物体定位到屏幕中央的想法会使用到云台机制。实现这个想法坏消息是 我们必须实时地定位到物体的位置,但好消息是 如果我们已经知道了物体中心坐标点,这将会很容易。...代码可以我的GitHub中下载到:objectDetectCoord.py 代码核心逻辑是:在检测到的物体区域画出一个圆,并且在圆的中心画一个红点。

1.1K20

自动化视觉跟踪

使用 PythonOpenCV 进行颜色检测 我们想做的一件事情就是检测并跟踪某种颜色的物体。为此,我们必须理解一点OpenCV如何翻译颜色的。...关于颜色检测,Henri Dang写了一篇很棒的教程:Color Detection in Python with OpenCV。 通常,我们的相机是使用RGB颜色模式工作的。...最后让我们看看OpenCV如何根据给出的颜色选择出我们的物体。...实时地获取到物体位置 将物体定位到屏幕中央的想法会使用到云台机制。实现这个想法坏消息是 我们必须实时地定位到物体的位置,但好消息是 如果我们已经知道了物体中心坐标点,这将会很容易。...代码可以我的GitHub中下载到:objectDetectCoord.py 代码核心逻辑是:在检测到的物体区域画出一个圆,并且在圆的中心画一个红点。

97430
  • Python3 OpenCV4 计算机视觉学习手册:1~5

    对于 macOS,有几种可能的方法获取 Python 3,NumPy,SciPy 和 OpenCV 的标准版本。 所有方法最终都要求使用 Xcode 命令行工具源代码编译 OpenCV。...四、深度估计和分割 本章首先向您展示如何使用深度相机的数据识别前景和背景区域,以便我们可以将效果限制为仅前景或背景。...可以通过手动选择更多的背景区域并应用更多的迭代完善 GrabCut 结果OpenCV 安装的samples/python文件夹的grabcut.py文件很好地说明了此技术。...在脚本调整检测参数,以查看它们如何影响结果。 当您感到满意时,让我们考虑一下我们还能在 OpenCV使用面孔做什么。...总结 到目前为止,您应该已经对人脸检测和人脸识别如何工作以及如何PythonOpenCV 4 实现它们有了很好的了解。

    4.2K20

    教程 | Adrian小哥教程:如何使用Tesseract和OpenCV执行OCR和文本识别

    安装软件和环境、项目流程、review 代码、实验结果,到展示局限、提出建议,这篇教程可以说十分详细了。机器之心对该教程进行了摘要编译介绍。 本教程将介绍如何使用 OpenCV OCR。...然后,我将展示如何写一个 Python 脚本,使其能够: 使用 OpenCV EAST 文本检测器执行文本检测,该模型是一个高度准确的深度学习文本检测器,可用于检测自然场景图像的文本。...首先,我们使用 OpenCV 的 EAST 文本检测检测图像的文本。EAST 文本检测器将提供文本 ROI 的边界框坐标。...该函数: 使用基于深度学习的文本检测检测(不是识别)图像的文本区域。 该文本检测器生成两个阵列,一个包括给定区域包含文本的概率,另一个阵列将该概率映射到输入图像的边界框位置。...总结 本教程介绍了如何使用 OpenCV OCR 系统执行文本检测和文本识别。 为了实现该任务,我们 利用 OpenCV EAST 文本检测器定位图像的文本区域

    3.9K50

    使用Python+OpenCV+dlib为人脸生成口罩

    = 19.21.0 cmake == 3.18.0 opencv-python == 4.4.0 由于此脚本需要dlib库,因此在开始运行该脚本之前需要安装dlib,你可以通过以下链接了解如何使用Python...这个库是用C++编程语言创建的,它可以使用C/C++、Python和java等语言。 导入库 我们导入所需的库开始:OpenCV、dlib、numpy、os和imutils。...我们将通过某种方法获得面边界框,其中我们分别使用图像中人脸的(x,y)坐标。一旦人脸区域检测到并被限定,我们进入下一步检测脸部区域中的关键点。...可以使用OpenCV椭圆和其他三种规则形状函数绘制口罩轮廓。然后我们可以使用cv2.fillpoly函数将绘制的口罩填充颜色。...如图6所示,在著名的Ellen's wefie拍摄,在检测到的人脸上叠加口罩的结果

    1.8K11

    恺明大神 Mask R-CNN 超实用教程

    在上周的博客文章,你学习了如何使用Yolo物体探测器检测图像物体(https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv...与原始的R-CNN相似,Fast R-CNN仍然使用选择性搜索获取区域建议;然而,本文的新贡献是感兴趣区域(ROI)池化模块。...--visualize (可选): 正值表示想要可视化如何屏幕上提取屏蔽区域。无论哪种方式,我们都将在屏幕上显示最终的输出。...图9:使用PythonOpenCV,我们可以使用Mask R-CNN执行实例分割。 我们的Mask R-CNN图像中正确地检测并分割了人、狗、马和卡车。...然后,我们构造一个 blob,并在计算通过神经网络的时间,以便我们可以计算完成所需时间(第 75-80 行)。检测结果同时包含了检测框和蒙版。

    1.5K20

    恺明大神 Mask R-CNN 超实用教程

    在上周的博客文章,你学习了如何使用Yolo物体探测器检测图像物体(https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv...与原始的R-CNN相似,Fast R-CNN仍然使用选择性搜索获取区域建议;然而,本文的新贡献是感兴趣区域(ROI)池化模块。...--visualize (可选): 正值表示想要可视化如何屏幕上提取屏蔽区域。无论哪种方式,我们都将在屏幕上显示最终的输出。...图9:使用PythonOpenCV,我们可以使用Mask R-CNN执行实例分割。 我们的Mask R-CNN图像中正确地检测并分割了人、狗、马和卡车。...然后,我们构造一个 blob,并在计算通过神经网络的时间,以便我们可以计算完成所需时间(第 75-80 行)。检测结果同时包含了检测框和蒙版。

    2.4K40

    恺明大神 Mask R-CNN 超实用教程

    在上周的博客文章,你学习了如何使用Yolo物体探测器检测图像物体(https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv...与原始的R-CNN相似,Fast R-CNN仍然使用选择性搜索获取区域建议;然而,本文的新贡献是感兴趣区域(ROI)池化模块。...--visualize (可选): 正值表示想要可视化如何屏幕上提取屏蔽区域。无论哪种方式,我们都将在屏幕上显示最终的输出。...图9:使用PythonOpenCV,我们可以使用Mask R-CNN执行实例分割。 我们的Mask R-CNN图像中正确地检测并分割了人、狗、马和卡车。...然后,我们构造一个 blob,并在计算通过神经网络的时间,以便我们可以计算完成所需时间(第 75-80 行)。检测结果同时包含了检测框和蒙版。

    1.6K30

    实例应用(二):使用PythonOpenCV进行多尺度模板匹配

    在这篇文章,我详细地介绍了如何玩 Waldo在哪里?(或者 哪里是沃利?,为国际读者)使用计算机视觉。...使用cv2应用模板匹配 。匹配模板 并跟踪最大相关系数的匹配(以及具有最大相关系数的区域的 x,y坐标)。 遍历所有尺度后,取相关系数最大的区域作为“匹配”区域。...无论如何,应用边缘检测后,我们的模板应该是这样的: ? 图2:模板图像中提取边缘。...需要特别注意的是将边界框的坐标乘以第37行上的比值, 以确保坐标与输入图像的原始尺寸相匹配。 最后,我们绘制边界框并将其显示在71-73行的屏幕上 。...另外,请仔细检查“使命召唤”徽标的样式和颜色在图3和图4有何不同。如果我们使用RGB或灰度模板,我们将无法在输入图像中找到这些标志。

    6.2K31

    精通 Python OpenCV4:第二部分

    颜色图 技术要求 本章的技术要求如下: PythonOpenCV 特定于 Python 的 IDE NumPy 和 Matplotlib 包 一个 Git 客户端 有关如何安装这些要求的更多详细信息...为此,将使用cv2.addWeighted()函数。 此函数通常用于Sobel运算符获取输出。 Sobel运算符用于边缘检测,在其中创建强调边缘的图像。...在本节,我们将了解如何基于胡矩不变性匹配轮廓。 OpenCV 提供cv2.matchShapes(),可以使用三种比较方法来比较两个轮廓。 所有这些方法都使用胡矩不变式。...此信息用于在屏幕上叠加计算机生成的元素。 另一方面,基于识别的增强现实使用图像处理技术推导用户正在看的地方。 图像获得照相机姿势需要找到环境的已知点与其对应的照相机投影之间的对应关系。...在feature_matching.py脚本,我们将使用 BF 匹配器查看如何匹配检测到的特征。

    2.2K10

    精通 Python OpenCV4:第一部分

    在本章,我们将介绍以下主题: 图像基础的理论介绍 像素,颜色,通道,图像和色彩空间的概念 OpenCV 坐标系 在 OpenCV 访问和操作不同颜色空间中的像素(获取和设置) OpenCV 的...OpenCV 使用 BGR 颜色格式而不是 RGB,但是某些 Python 包(例如 Matplotlib)使用后者。 因此,我们介绍了如何将图像从一种颜色格式转换为另一种颜色格式。...玩转视频捕获属性 在前面的一些示例,我们看到了如何cv2.VideoCapture对象获取某些属性。 在本节,我们将看到如何获取所有属性并了解它们如何工作。...例如,您可以显示检测到的脸部数量(以便查看脸部检测算法的表现)或处理时间。 在本章,您将了解如何使用 OpenCV 库绘制基本的和更高级的形状。...假负例是一个错误,其中结果指示不存在条件,而实际上应满足条件(例如,未检测到脸部)。 在本章,我们将看到如何用不同的颜色绘制一些基本形状和文本。

    3.1K10

    Python制作截图小工具

    在第一种方法,我们使用save() 函数来保存图像。但在这里,我们将使用这两个模块拍摄和保存屏幕截图。通过在终端写下以下命令来安装Numpy 和OpenCV 。...然后,我们将图像转换为NumPy 数组,并将颜色的顺序RGB改为BGR。这样做是因为当OpenCV 读取图像时,它要求颜色的顺序是BGR而不是默认的RGB。...然而,如果我们必须捕捉屏幕的一部分,我们可以使用Pillow 模块。这个模块使用另一个叫做ImageGrab 的子模块,让我们设置我们想要捕捉的屏幕区域坐标。...输出:图片本质上讲,这就是在Python拍摄屏幕截图的方法,即通过设置坐标。参考该文档以了解更多关于Pillow 模块的信息。...我们还学习了如何使用Python的Pillow 模块捕捉屏幕的一部分。此外,我们还看到了如何使用pyscreenshot 模块捕获整个屏幕和它的一部分。

    54821

    基于OpenCV的特定区域提取

    今天我们将一起探究如何使用OpenCVPython图像中提取感兴趣区域(ROI)。 在之间的文章,我们完成了图像边缘提取,例如从台球桌中提取桌边。...使用“ cvtColor()”将RGB图像转换为灰度 2. 通过应用模糊函数“ GaussianBlur()”消除灰度图像的噪声 3....逻辑非常简单,因此我们不需要任何内置的OpenCVPython函数。 另一个重要的逻辑是分别识别四个部分,即左上,右上,左下和右下。 这也非常简单,涉及识别图像中心坐标以及每个检测到的片段的质心。...对段轮廓进行质心检测需要在轮廓上应用OpenCV “ moments()”函数,然后使用以下公式计算中心 X,Y坐标: center_x,center_y =(int(M [“ m10”] / M [”...然后,我们使用OpenCV “ add()”函数将此反向蒙版添加到先前获得的黑色背景,并获得相同的结果,但使用白色背景。 ? 到此为止,我们总结了几种方法,可以轻松地图像中提取感兴趣区域

    2.9K30

    总结 | 基于OpenCV提取特定区域方法汇总

    今天我们将一起探究如何使用OpenCVPython图像中提取感兴趣区域(ROI)。 在之间的文章,我们完成了图像边缘提取,例如从台球桌中提取桌边。...本练习的目标图像包含四个大脑图 从上面的图像,我们只想提取与四个地图(头部扫描)相对应的区域,而将其他所有内容都排除在外。因此,让我们开始吧。 第一步是检测我们要提取的片段的边缘。...使用“ cvtColor()”将RGB图像转换为灰度 2. 通过应用模糊函数“ GaussianBlur()”消除灰度图像的噪声 3....逻辑非常简单,因此我们不需要任何内置的OpenCVPython函数。 另一个重要的逻辑是分别识别四个部分,即左上,右上,左下和右下。 这也非常简单,涉及识别图像中心坐标以及每个检测到的片段的质心。...用于ROI提取的备用倒置掩模(图像源作者) 然后,我们使用OpenCV “ add()”函数将此反向蒙版添加到先前获得的黑色背景,并获得相同的结果,但使用白色背景。 ?

    4.1K20

    使用网络摄像头和PythonOpenCV构建运动检测器(Translate)

    本期我们将学习如何使用OpenCV实现运动检测 运动检测是指检测物体相对于周围环境的位置是否发生了变化。接下来,让我们一起使用Python实现一个运动检测器应用程序吧!...通过计算该基准帧的对象与新帧对象之间的相位差检测运动。我们也将得到的结果称为Delta帧。 ? 接下来,我们将使用像素强度优化Delta帧,优化后的帧称为阈值帧。...最基本的安装开始,我们需要安装Python3或更高版本,并使用pip安装pandas和OpenCV这两个库。这些工作做好,我们的准备工作就完成了。 第一步:导入需要的库: ?...然后,我们使用这些坐标在彩色帧上绘制一个特定颜色、特定厚度的矩形。此矩形描述了实际检测到的对象。 第九步:捕获对象进入帧(场景)和退出帧(场景)时的时间戳 ?...“状态”列表status_list存储值0:代表未检测到对象,1:代表检测到对象。此状态值0更改为1的时刻就是对象进入帧的那一时刻。同样,此状态值1变为0的时刻就是对象消失的那一时刻。

    2.9K40

    实战 | 用PythonOpenCV搭建一个老人跌倒智能监测系统 (步骤 + 源码)

    导读 本文将使用PythonOpenCV和MediaPipe搭建一个老人跌倒智能监测系统。...(公众号:OpenCV与AI深度学习) 背景介绍 老人监测系统是一种智能检测系统,可以检测老人是否躺在床上或是否跌倒在地。...实现步骤 【1】导入必要的模块: 在 python 中导入 Numpy、MediaPipe 和 opencv 【2】定义一个计算角度的函数: 由于我们将根据我们使用 OpenCV 获得的角度和坐标假设一个人是在行走还是跌倒在地上...我们将再次使用 OpenCV 获得的坐标,然后使用它来找到床的坐标,然后在检查跌倒条件时引入一个新条件,即当受试者的坐标与床坐标一致时,这意味着一个人在床上时自然是安全的。...【6】让我们在屏幕上打印结果: 现在打印摔倒和安全等的结果;我们可以很容易地使用 cv2 的 putText 函数来显示保存在变量 stage 的文本。

    47510

    深度学习目标检测指南:如何过滤不感兴趣的分类及添加新分类?

    我已经尽量提供关于深度学习目标检测模型构成的内容,包括提供使用预先训练的目标检测模型实现深度学习的 OpenCV + Python 的源代码(地址:https://www.getdrip.com/forms...在这基础上,我们将会使用 OpenCV 运行实时深度学习目标检测模型。 在不改动网络结构和重新训练模型的前提下,我将会演示如何能够忽略和过滤你不感兴趣的目标类别。...最后,我们将讨论在深度学习目标检测如何添加或删减类别,我们将以此结束今天的博客,包括我推荐的资源帮助你入门。 让我们开始深入了解深度学习目标检测吧!...但是,首先,需要准备以下系统: 你需要至少在你的 Python 虚拟环境安装 OpenCV 3.3 版本(假设你使用的是 Python 虚拟环境)。...同一个类中标签的颜色和矩形框相同,相同类别的目标将使用相同的颜色(也就是,视频的“船”,都将使用相同颜色标签和边框) 最后,仍然在 while 循环中,我们将在屏幕上展示我们努力工作的结果: 在第

    2.2K20

    OpenCV图像识别在自动化测试实践

    这种情况下,只能通过点击坐标代替控件操作,而如何自动获取控件坐标就成了能否实现自动化的关键。...解决的方法是将开源计算机视觉库OpenCV引入Appium框架,将按钮或控件的截图作为参数输入,在屏幕通过图像特征识别获取对应控件坐标,调用AppiumAPI实现坐标点击,然后再次调用OpenCV图像识别库...特征检测结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。...opencv-python特征匹配 运行环境 Mac OS 10.14.6 Python 3.7 opencv-python-4.5.1 Opencv-Python安装可以使用如下命令 pip3 install...opencv-python 关键点 OpenCV实现的特征检测接口包括detect()、compute()和detectAndCompute()函数,分别实现特征检测、特征描述,以及检测并描述一步到位

    3.4K31

    10分钟学会使用YOLO及Opencv实现目标检测(上)|附源码

    在本教程,将学习如何使用YOLO、OpenCVPython检测图像和视频流的对象。...主要内容有: 简要讨论YOLO算法; 使用YOLO、OpenCVPython进行图像检测使用YOLO、OpenCVPython进行视频流检测; 讨论YOLO算法的优点和缺点; 什么是YOLO...YOLO算法; R-CNN算法是最早的基于深度学习的目标检测器之一,其结构是两级网络: 首先需要诸如选择性搜索之类的算法提出可能包含对象的候选边界框; 然后将这些区域传递到CNN算法进行分类;...这类算法将对象检测视为回归问题,获取给定的输入图像并同时学习边界框坐标和相应的类标签概率。通常,单级检测器往往不如两级检测器准确,但其速度明显更快。YOLO是单级检测器中一个很好的算法。...然后,我们使用随机类颜色在图像上绘制边界框和文本 。最后,显示结果图像,直到用户按下键盘上的任意键。

    12.5K64
    领券