基于Python的颜色识别器

article/2025/8/26 19:37:44

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

在这篇文章中,我们将展示如何使用Python构建颜色识别器。此过程也称为“颜色检测”。我们将创建一个基本应用程序,该应用程序将帮助我们检测图像中的颜色。该程序还将返回颜色的RGB值。构建颜色识别器是Computer Vision中最基础的项目。

如果大家以前从未听说过Computer Vision,那么这是了解它的最佳时间。大多数机器学习和人工智能领域都与计算机视觉紧密相关。随着我们的发展和探索,看到外部世界对我们的发展具有重大影响。对于机器来说,情况也是如此,他们使用图像看到外界,并且这些图像被转换为计算机可以理解的数据值。

目录

• 入门

• 库

• 定义图片

• 颜色识别

• 应用

• 结果

入门

我们将为此项目使用三个主要模块。它们是NumPy,Pandas和OpenCv。OpenCv是一个高度优化的库,专注于实时应用程序。

OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。

资料来源:https : //opencv.org

如前所述,我们将在此项目中使用三个模块。要使用这些模块,我们必须安装必要的库。使用pip安装库非常简单。Pip是程序包管理工具。我们将使用命令行界面进行安装。这是一次安装所有3个库的行:

pip install numpy pandas opencv-python

安装完成后,我们必须将它们导入到我们的程序中。在大家喜欢的代码编辑器中打开一个新文件。以下是有关如何导入已安装库的代码:

import numpy as np
import pandas as pd
import cv2

OpenCv导入为cv2。对于其他库,我们将它们“ as”导入,以便在程序中更轻松地调用它们。

完善!现在,我们可以进行下一步,在此步骤中,我们将定义要用于测试颜色识别器应用程序的图像。

定义图片

您可以选择任何想要的图像。我将图像保存在与程序相同的文件夹中,这使查找和导入更加容易。

img = cv2.imread("color_image.jpg")

为了给您一些想法,这是我将用于此项目的图像:

大家准备好进行一些编程了吗?让我们继续下一步。

颜色识别

我问大家一个好问题。小伙伴们知道机器就相当于一张白纸吗?我们认为是因为他们学到了教给他们的东西。

教授色彩

首先,我们必须教给他们什么是颜色。为此,我们需要包含颜色名称和一些与这些颜色匹配的值的数据。由于大多数颜色都可以使用红色,绿色和蓝色定义。这就是为什么我们将RGB格式用作数据点的原因。我找到了一个准备就绪的csv文件,其中包含大约1000个颜色名称和RGB值。下面是相关链接:

https://github.com/codebrainz/color-names/blob/master/output/colors.csv

我们将在程序中使用此csv文件。该文件的屏幕截图可让您有所了解:

colors.csv

让我们使用read_csv方法将colors.csv文件导入到我们的程序中。由于我们下载的csv文件没有列名,因此我将在程序中定义它们。此过程称为数据处理。

index=["color", "color_name", "hex", "R", "G", "B"]csv = pd.read_csv('colors.csv', names=index, header=None)

全局变量

在以下步骤中,我们将定义两个函数。为了使应用程序顺利运行,我们需要一些全局变量。大家将了解全局变量在使用函数时是如何帮助大家的。

clicked = False
r = g = b = xpos = ypos = 0

颜色识别功能

当我们双击图像的某个区域时,将调用此函数。它将返回颜色名称和该颜色的RGB值。这就是神奇的地方!

def recognize_color(R,G,B):minimum = 10000for i in range(len(csv)):d = abs(R- int(csv.loc[i,"R"])) + abs(G- int(csv.loc[i,"G"]))+ abs(B- int(csv.loc[i,"B"]))if(d<=minimum):minimum = dcname = csv.loc[i,"color_name"]return cname

鼠标点击功能

此函数用于定义我们的双击过程。在创建应用程序部分时,我们将需要它。

def mouse_click(event, x, y, flags, param):if event == cv2.EVENT_LBUTTONDBLCLK:global b,g,r,xpos,ypos, clickedclicked = Truexpos = xypos = yb,g,r = img[y,x]b = int(b)g = int(g)r = int(r)

希望大家继续和我在一起!看起来可能有些复杂,但是当我们开始在编辑器中编写它们时,大局就会显现出来。我们尽量使事情变得简单易懂。

应用

很高兴大家能完成此步骤。在这一步中,我们将使用OpenCV方法将图像作为新窗口打开。在该窗口中,我们将使用我们先前定义的功能。该应用程序非常简单,当我们双击图像上的某个区域时,它将返回颜色名称和颜色值。

应用窗口

首先,让我向大家展示如何使用OpenCV将图像文件作为新窗口打开。

cv2.namedWindow('Color Recognition App')

其次,让我们调用我们创建的鼠标单击功能。这为我们的应用程序提供了更多功能。

cv2.setMouseCallback('Color Recognition App',mouse_click)

应用程序

这是while循环,用于启动我们的应用程序窗口。

while(1):
cv2.imshow("Color Recognition App",img)if (clicked):#cv2.rectangle(image, startpoint, endpoint, color, thickness)-1 fills entire rectangle cv2.rectangle(img,(20,20), (750,60), (b,g,r), -1)
#Creating text string to display( Color name and RGB values )text = recognize_color(r,g,b) + ' R='+ str(r) +  ' G='+ str(g) +  ' B='+ str(b)#cv2.putText(img,text,start,font(0-7),fontScale,color,thickness,lineType )cv2.putText(img, text,(50,50),2,0.8,(255,255,255),2,cv2.LINE_AA)
#For very light colours we will display text in black colourif(r+g+b>=600):cv2.putText(img, text,(50,50),2,0.8,(0,0,0),2,cv2.LINE_AA)clicked=False

关闭申请

如果您使用过OpenCV项目,则可能熟悉此步骤。我们必须定义如何结束和关闭应用程序窗口。否则,它将因为我们使用while(1)启动应用程序而永远运行。添加以下行是您未来项目的一个好习惯。

#Break the loop when user hits 'esc' key    if cv2.waitKey(20) & 0xFF ==27:break
cv2.destroyAllWindows()

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~



http://chatgpt.dhexx.cn/article/EdH9HF1Z.shtml

相关文章

python颜色识别demo

一般对颜色空间的图像进行有效处理都是在HSV空间进行的&#xff0c;然后对于基本色中对应的HSV分量需要给定一个严格的范围&#xff0c;下面是通过实验计算的模糊范围&#xff08;准确的范围在网上都没有给出&#xff09;。 H: 0 — 180 S: 0 — 255 V: 0 — 255 此处把部分…

openCV-python实现颜色识别

本文将介绍使用OpenCV实现颜色识别的详细步骤 代码。 背景介绍 在截取出模板匹配到的logo区域之后&#xff0c;需要判断logo是什么颜色。本案例中要识别的对象是纯色的所以适用下面的颜色识别方法&#xff0c;有不同需求的请斟酌借鉴。 原理介绍 数字图像处理中常用的采用模型…

python颜色识别,46行代码实现865种颜色识别,看过的都说顶呱呱!

1.先介绍我做的颜色识别的功能&#xff0c;简单的说&#xff0c;就是该脚本可以打开图片&#xff0c;在图片上点击某个区域&#xff0c;可以识别某个区域的颜色&#xff0c;颜色识别准确度很高&#xff0c;很多时候颜色识别是辅助物体的颜色识别&#xff0c;但这个代码你们可以…

OpenCV(Python)颜色识别(一)

1. 基本原理 1.1 彩色模型 数字图像处理中常用的采用模型是RGB&#xff08;红&#xff0c;绿&#xff0c;蓝&#xff09;模型和HSV&#xff08;色调&#xff0c;饱和度&#xff0c;亮度&#xff09;&#xff0c;RGB广泛应用于彩色监视器和彩色视频摄像机&#xff0c;我们平时…

OpenCV颜色识别

彩色模型 数字图像处理中常用的采用模型是RGB&#xff08;红&#xff0c;绿&#xff0c;蓝&#xff09;模型和HSV&#xff08;色调&#xff0c;饱和度&#xff0c;亮度&#xff09;&#xff0c;RGB广泛应用于彩色监视器和彩色视频摄像机&#xff0c;我们平时的图片一般都是RGB…

LabVIEW色彩匹配实现颜色识别、颜色检验(基础篇—13)

目录 1、颜色识别 2、颜色检验 色彩匹配&#xff08;Color Matching&#xff09;是将模板图像与待测图像或其中某一区域的颜色进行比较&#xff0c;判断它们是否相同或相近的过程。它可以用于颜色识别、颜色检验以及彩色对象定位等基于色彩信息比较的应用程序。 色彩匹配通常…

Python 对图片进行颜色识别

场景&#xff1a;在进行压力测试时&#xff0c;需要判断图片的某一块区域是否是黑色 这里使用的是OpenCV库对图片进行颜色的识别&#xff0c;几乎可以识别所有常见的颜色 直接上代码 import cv2 import numpy as np import collectionsclass colorList:def getColorList(sel…

OpenCV颜色识别(所有颜色均可识别)

OpenCV颜色识别实例&#xff08;所有颜色均可识别&#xff09; 欢迎访问我的博客sakuraの绘梨衣 本文中的颜色识别为红色&#xff0c;颜色阈值设置如下&#xff1a; lower_apple np.array([0, 100, 100]) higher_apple np.array([10, 200, 200])识别其他颜色可以参考HSV颜色…

如何实现视觉识别颜色

1. 功能说明 通过摄像头识别特定颜色&#xff08;红、绿、蓝&#xff09;。摄像头采集图像信息并通过WiFi将信息传递给PC端&#xff0c;然后PC端根据比例判断出目标颜色在色盘上的所属颜色后&#xff0c;指针便会指向对应颜色。 红、绿、蓝-色块 2. 电子硬件 本实验中采用了以下…

Halcon——颜色识别提取

文章目录 前言一、颜色识别原理二、颜色识别为什么将其转换至HSV颜色空间三、源代码写在最后 前言 【Halcon】颜色识别提取 这里以嘉庚建筑风格为例~ 一、颜色识别原理 载入图像后&#xff0c;将其转换至HSV颜色空间&#xff0c;通过判断每个像素是否在所选取的范围内&…

颜色识别、轮廓识别-树莓派 Opencv-基于Python学习记录DAY-4

学习颜色识别之前先介绍一下新认识的图像格式HSV&#xff1a; 色调H 用角度度量&#xff0c;取值范围为0&#xff5e;360&#xff0c;从红色开始按逆时针方向计算&#xff0c;红色为0&#xff0c;绿色为120,蓝色为240。它们的补色是&#xff1a;黄色为60&#xff0c;青色为18…

opencv--颜色识别

目录 一、主要函数介绍 二、颜色识别 三、其他相关函数介绍 1. cv2.resize 2. np.array(x,dtype) 3. cv2.inRange() 4. cv2.imshow() 5.cv2. waitKey() 四、掩膜 一、主要函数介绍 通常&#xff0c;相机在RGB颜色模式下工作&#xff0c;但这种模式受到光线的影响较大&am…

颜色识别OpenCV

下面有多种颜色识别方法&#xff0c;可根据需要进行选择 ①colorList.py&#xff08;颜色库&#xff09; import numpy as np import collectionsdef getColorList():dict collections.defaultdict(list)# blacklower_black np.array([0, 0, 0])upper_black np.array([180…

SPSSAU统计分析软件,一键输出三线表格式分析结果

SPSSAU最近和一位朋友聊天&#xff0c;她在写论文&#xff0c;说到自己用SPSS软件对问卷数据做统计分析&#xff0c;做完之后分析结果有了&#xff0c;拿给导师看&#xff0c;但她们导师说&#xff0c;论文中的表格必须是三线表格式&#xff0c;然后她就得要自己手动制作三线表…

SPSS软件的数据分析与GDP和人口老龄化的预测

目录 前言 问题二模型的建立与求解 1.2.1 ARIMA时间序列模型的建立与求解 平稳性检验 的时间序列预测模型的建立与求解 ​​​​​​​模型的检验 ​​​​​​​对于的时间序列预测模型的建立与求解 ​​​​​​​模型的检验 ​​​​​​​ 前言 SPSS软件的数据分析与GDP和…

数据分析与挖掘———SPSS Moderler

数据分析与挖掘———SPSS Moderler 一、Modeler给概述 1、SPSS Modeler基本认识 IBM SPSS Modeler是一组数据挖掘工具&#xff0c;通过这些工具可以采用商业技术快速建立预测性模型&#xff0c;并将其应用于商业活动&#xff0c;从而改进决策过程。 SPSS Modeler提供了各种…

用SPSS做数据分析(1)

写在前面: 爬虫今天停更一天,今天是周六,今天要把最近网课学习SPSS课程做个总结和回顾,明天继续更新爬虫的内容,今天这篇文章主要是SPSS中的数据管理,一些关于数据的简单操作,是属于SPSS中比较基础的内容,希望看完博客能动手亲自实践一下,会有奇效 文章目录 写在前面:SPSS数据…

利用SPSS做数据分析①(了解SPSS)

话不多说&#xff0c;上才艺&#xff0c;BGM&#xff0c;BGM&#xff0c;BGMBGM。。。哈哈哈哈 不闹了&#xff0c;接下来让我们一起认识一个非常好用的数据分析工具&#xff1a;SPSS 1、SPSS是什么&#xff1f; SPSS是广大统计爱好者和数据分析师最熟悉的名字&#xff0c;它…

如何用SPSS进行数据分析?

1.什么是SPSS SPSS是社会统计科学软件包的简称&#xff0c; 其官方全称为IBM SPSS Statistics。SPSS软件包最初由SPSS Inc.于1968年推出&#xff0c;于2009年被IBM收购&#xff0c;主要运用于各领域数据的管理和统计分析。作为世界社会科学数据分析的标准&#xff0c;SPSS操作…

数据分析5大软件大PK:Python、Excel、R、SAS、SPSS你最爱哪个?

转自 中国统计网 本文为转载分享&#xff0c;若侵权请联系后台删除 1 Excel Microsoft Excel是微软公司的办公软件Microsoft office的组件之一&#xff0c;是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件。Excel 是微软办公套装软件的一个…