使用 OpenCV 在 Python 中检测相似颜色的对象12 Apr 2025 | 8 分钟阅读 基于颜色的物体检测是一种简单的方法,它利用了目标物体独特的颜色属性来识别其在图像或视频中的位置。该过程涉及对图像进行滤波,并使用基于色调颜色的复制方法来屏蔽目标物体。 该方法通常采用 HSV(色调、饱和度、亮度)颜色空间,因为该空间将色度内容(色调)与亮度(亮度)分离开来,因此比 RGB 颜色空间更能抵御光照变化。当确定特定的 HSV 范围时,具有相似颜色的物体可以更容易地进行分割和评估。 该过程可分为以下几个步骤:
什么是 HSV?HSV 是一种图像处理和计算机视觉颜色模型,它为人类视觉提供了颜色的感知表示。与混合红色、绿色和蓝色光强度的RGB 模型不同,HSV 将颜色分量分为三个独立的部分:
理解 HSV 的不同组成部分HSV 颜色模型包含三个组成部分: 1. 色调 (H)色调是自然颜色本身,或称为“色调”或“阴影”,通常以圆周的角度表示,范围从 0-360 度。这是我们谈论颜色时所指的部分,在下一篇文章中,我们将讨论颜色。由于操作集中在色调上,它会过度强调您想要的特定颜色,如红色、蓝色或绿色。关于色调的另一件事是,您可以使用它来检测具有特定色调的所有物体,而不管其亮度如何。 例如 红色对应于 0°(也对应 360°)的色调,绿色对应于 120° 的色调,蓝色对应于 240° 的色调。 2. 饱和度 (S)另一方面,饱和度与任何颜色的亮度或深度有关。如果饱和度高,颜色就具有更多的纯色调;如果饱和度低,颜色看起来就更偏灰。如果您试图寻找某种特定颜色的强烈色调,但又不像其他颜色那样鲜艳,则可以使用饱和度来查找高饱和度的颜色。 例如
3. 亮度 (V)色调是颜色,它记录了颜色的亮度或暗度。其中,浮点数的较高值表示亮/浅色,较低值表示暗/暗的颜色。由于亮度代表亮度,因此它允许您在检测物体时考虑光照或阴影的变化。您可以设置亮度范围来专注于亮色或暗色,或者如果您只对检测颜色本身感兴趣,则可以忽略亮度的变化。 例如
为什么 HSV 比 RGB 更适合颜色检测?在图像处理和基于颜色的物体检测中,由于几个重要原因,通常首选 HSV(色调、饱和度、亮度)而不是 RGB(红、绿、蓝)。
在 Python 中使用 OpenCV 实现检测相似颜色的物体在以下部分,我们将通过一个示例演示如何使用OpenCV 来检测相似颜色的物体。 代码 输出 Please upload an image file: s4.jpg s4.jpg(image/jpeg) - 22689 bytes, last modified: 1/20/2025 - 100% done Saving s4.jpg to s4.jpg Original image ![]() Mask (Binary) ![]() Detected Blue Objects ![]() Contours Highlighted ![]() Done! 说明 以下是代码中过程的分步说明:
何时使用此方法有用?该方法在目标物体具有与背景或其他物体区分开来的独特且一致的颜色时特别有用。一些常见应用包括:
局限性
下一主题动态规划 - Python |
引言:正态分布,也称为高斯分布或钟形曲线,是统计学和概率论中的一个基本概念。它描述了连续随机变量的分布,并广泛应用于金融、物理、生物学等各个领域。在此...
阅读 3 分钟
简介 强大的 Python 库 NLTK(自然语言工具包)可用于自然语言处理应用程序。消除停用词,即像“the”、“is”、“in”等频繁出现的词,它们通常意义不大,是自然语言处理中的一个常见预处理步骤。文本中的停用词...
阅读 6 分钟
简介因此,词嵌入属于最先进的NLP工具,它们允许机器以相当高的准确性处理和生成自然语言文本。该领域中最流行的两种方法是Word2Vec和FastText,如果编程语言是...
阅读 8 分钟
Python 中的类方法是与类关联而不是与类的对象关联的方法。这些方法允许访问和更改类级别的数据,这在与类变量或许多对象共有的功能交互时是必需的。在...
7 分钟阅读
传统上,React.js、Vue.js 和 Angular 等 JavaScript 库用于构建动态且交互式的 Web 应用程序。这些工具允许开发人员使用最新的前端框架设计高度响应的用户界面 (UI)。然而,如果你是一名 Python 开发人员,需要构建...
阅读 4 分钟
数据分析师和研究人员经常处理各种数据集,其中一些可能包含分类数据。get_dummies() 函数的应用有助于处理这些分类值。本文有助于阐明在 Python 中创建虚拟变量的过程...
阅读 6 分钟
行人检测是几乎所有现代应用程序中的关键组成部分,包括自动驾驶汽车或城市安全系统。由于行人检测涉及诸如尺寸变化等操作,因此 OpenCV 中的大量功能使得使用……
阅读 8 分钟
在 Python 中,Pandas 是一个开源的 Python 库,有助于数据分析和操作、数据预处理和数据清洗。假设您有 JSON 格式、Excel 或 CSV 格式的数据,它是一个组织中员工的列表。现在,您...
5 分钟阅读
? Python 是一种流行且灵活的编程语言,以其易于学习、灵活和简单而闻名。Python 是一种解释型语言,这意味着解释器逐行运行代码。然而,Python 的解释性有时会导致性能瓶颈,尤其是在处理计算密集型... (原文省略)
阅读 4 分钟
数据库通常指的是一种已准备好的信息集合,可以通过各种库和模块方便地访问、管理和更新。Python 提供了连接到不同类型数据库的接口,包括关系型数据库(例如,SQLite、MySQL...)。
阅读 8 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India