颜色检测python项目

news2024/11/18 20:41:12

 注意:本文引用自专业人工智能社区Venus AI

更多AI知识请参考原站 ([www.aideeplearning.cn])

什么是颜色检测?

颜色检测是检测任何颜色名称的过程。很简单不是吗?嗯,对于人类来说,这是一项极其简单的任务,但对于计算机来说,这并不简单。人眼和大脑协同工作,将光转化为颜色。我们眼睛中的光感受器将信号传输到大脑。然后我们的大脑就会识别颜色。从孩提时代起,我们就用颜色名称来映射某些光。我们将使用大致相同的策略来检测颜色名称。项目的动态效果展示如下,请点击观看:

关于 此Python 项目

在此颜色检测 Python 项目中,我们将构建一个应用程序,通过该应用程序,您可以通过单击颜色自动获取颜色名称。为此,我们将有一个包含颜色名称及其值的数据文件。然后我们将计算每种颜色的距离并找到最短的。

数据集

颜色由3种原色组成;红色、绿色和蓝色。在计算机中,我们将每个颜色值定义在0到255的范围内。那么我们可以用多少种方式来定义颜色呢?答案是 256*256*256 = 16,581,375。大约有 1650 万种不同的颜色表示方法。在我们的数据集中,我们需要将每种颜色的值与其相应的名称进行映射。但不用担心,我们不需要映射所有值。我们将使用包含 RGB 值及其相应名称的数据集。我们数据集的 CSV 文件取自此链接:

颜色数据集

color.csv 文件包含 865 种颜色名称及其 RGB 和十六进制值。

先决条件

在开始使用这个带有源代码的Python项目之前,您应该熟悉Python的计算机视觉库,即OpenCV和Pandas。

OpenCV、Pandas 和 numpy 是该项目在 Python 中所需的 Python 包。要安装它们,只需在终端中运行以下 pip 命令:

pip install opencv-python numpy pandas

在Python中构建项目的步骤——颜色检测

1. 用pandas读取CSV文件

当我们需要对 CSV 等数据文件执行各种操作时,pandas 库非常有用。pd.read_csv()读取 CSV 文件并将其加载到 pandas DataFrame 中。我们为每一列分配了一个名称,以便于访问。

#Reading csv file with pandas and giving names to each column
index=["color","color_name","hex","R","G","B"]
csv = pd.read_csv('colors.csv', names=index, header=None)

2.在窗口上设置鼠标回调事件

首先,我们创建了一个窗口,其中将显示输入图像。然后,我们设置一个回调函数,当鼠标事件发生时将调用该函数。

cv2.namedWindow('image')
cv2.setMouseCallback('image',draw_function)

通过这些行,我们将窗口命名为“image”,并设置一个回调函数,每当鼠标事件发生时,该函数都会调用draw_function() 。

3.创建draw_function

它将计算我们双击的像素的 RGB 值。函数参数有事件名称、鼠标位置的 (x,y) 坐标等。在函数中,我们检查事件是否双击,然后计算并设置 r、g、b 值以及 x,鼠标的 y 位置。

def draw_function(event, x,y,flags,param):
    if event == cv2.EVENT_LBUTTONDBLCLK:
        global b,g,r,xpos,ypos, clicked
        clicked = True
        xpos = x
        ypos = y
        b,g,r = img[y,x]
        b = int(b)
        g = int(g)
        r = int(r)

4. 计算距离得到颜色名称

我们有 r、g 和 b 值。现在,我们需要另一个函数来返回 RGB 值的颜色名称。为了获得颜色名称,我们计算距离(d),它告诉我们与颜色的接近程度,并选择距离最小的颜色。

我们的距离是通过以下公式计算的:

d = abs(Red – ithRedColor) + (Green – ithGreenColor) + (Blue – ithBlueColor)

def getColorName(R,G,B):
    minimum = 10000
    for 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 = d
            cname = csv.loc[i,"color_name"]
    return cname

5. 在窗口上显示图像

每当发生双击事件时,都会更新窗口上的颜色名称和 RGB 值。

使用cv2.imshow()函数,我们在窗口上绘制图像。当用户双击窗口时,我们绘制一个矩形并获取颜色名称,以使用cv2.rectanglecv2.putText()函数在窗口上绘制文本。

6. 运行Python文件

运行 Python 文件即可。

python <strong>Color_detection.py</strong>

结果展示如下:

图片[2]-颜色检测python项目-VenusAI

下载并解压zip文件

其中包含全部的项目文件,项目文件夹包含3个文件:

  • Color_detection.py – 我们项目的主要源代码。
  • Colorpic.jpg – 用于实验的示例图像。
  • Colors.csv – 包含我们的数据集的文件。

完整代码请参考源网站:https://www.aideeplearning.cn/1691-2/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1509197.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nvm下载及管理NodeJs版本,可随意切换,安装,卸载

nvm下载及管理NodeJs版本 nvm下载及管理NodeJs版本&#xff0c;可随意切换&#xff0c;安装&#xff0c;卸载

c++ primer plus笔记 第十八章 探讨c++新标准

复习前面的内容&#xff1a; 1.auto&#xff0c;可以自动识别auto本身在这种语境下是什么类型 2.decltype,让一个变量的类型和另外一个变量的类型相同 decltype(x) y;//让y的类型和x的类型相同 如何理解&#xff1f; decltype是一个关键词&#xff0c;其作用是检查括号内的…

【教程】APP备案全攻略:确保你的应用合规上线

【教程】APP备案全攻略&#xff1a;确保你的应用合规上线 摘要 本文详细介绍了中国大陆地区互联网信息服务提供者&#xff08;AP&#xff09;进行APP备案的流程、要求和注意事项。包括备案对象、备案方式、备案内容、备案流程等方面的详细说明&#xff0c;帮助开发者顺利完成…

微软模拟飞行器回放功能

参考b站up主&#xff0c;欢迎大家去关注&#xff1a;https://www.bilibili.com/video/BV1Z34y1P7zz/?spm_id_from333.880.my_history.page.click&vd_source4e0b40493e2382633fab2ddc1bb1d9cc 下载网址&#xff1a;https://flightsim.to/file/8163/flight-recorder 坠毁检…

微信公众号调用沙箱支付

沙箱支付 登录支付宝开放平台&#xff0c;选择底部沙箱支付 下载密钥生成工具 生成应用私钥与公钥&#xff0c;上传沙箱支付&#xff0c;获得支付宝公钥 配置支付通知与支付回调地址 SpringBoot配置 yml文件 这里的地址必须与沙箱配置的一样 controller package com.zq…

如何利用Python进行自动化测试和性能测试

在Python中&#xff0c;我们可以使用多种库和工具来执行自动化测试和性能测试。下面是一些示例代码&#xff0c;用于展示如何使用Python进行这两种类型的测试。 自动化测试 自动化测试通常使用诸如unittest或pytest这样的Python测试框架来执行。下面是一个使用unittest进行自…

RK3568驱动指南|第十三篇 输入子系统-第139章 输入子系统数据结构介绍

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

做抖音小店需要交钱吗?有门槛吗?都有哪些入驻条件和费用?

大家好&#xff0c;我是电商花花。 在抖音上开店已经成为很多人追逐的方向&#xff0c;因为这些人都看到别人在抖音上赚到钱&#xff0c;然后也想在抖音上尝试一下。 然而&#xff0c;许多人心中仍然存着一个问题&#xff0c;就是做抖音小店需要交钱吗&#xff1f;是否存在门…

长期异地就医备案有效期是多久?答记者问!

4、长期异地就医登记的有效期是多长&#xff1f; 答&#xff1a;异地长期就医登记长期有效。 如果您因个人原因需要变更长期居住地&#xff0c;只需提供相应的登记信息即可申请变更。 5、临时异地就医登记的有效期是多长时间&#xff1f; 答&#xff1a;临时异地就医登记包括…

《ElementPlus 与 ElementUI 差异集合》el-form-item CSS 属性 display 有变化

差异 element-ui el-form 中&#xff0c;属性display: flex; 导致元素在一排&#xff1b;element-plus el-form 中&#xff0c;属性display: block; 元素按照自己的属性排列&#xff1b; /* element ui */ display: block;/*element plus */ display: flex;如图所示 解决方案…

web基础05-jQuery

目录 一、jQuery 1.概述 2.原生js与jQuery对比 3.特点 4.使用 &#xff08;1&#xff09;入口函数 &#xff08;2&#xff09;语法 &#xff08;3&#xff09;jQuery选择器 5.方法 &#xff08;1&#xff09;获取属性值&#xff1a; &#xff08;2&#xff09;删除属…

在手机上欣赏无人直播,享受美好时光!

在这个充满着快节奏、高压力的现代社会中&#xff0c;人们经常感到身心疲惫&#xff0c;渴望找到一些放松和享受美好时光的方式。而随着科技的不断发展&#xff0c;手机已经成为人们生活中必不可缺的工具之一&#xff0c;为我们带来了诸多便利。其中&#xff0c;无人直播就是一…

MS5583N高分辨率模数转换器

产品简述 MS5583N 是一款高分辨率模数转换器&#xff0c;内部集 成高阶 Σ-Δ 调制器、低噪声可编程增益放大器、多 路输入选择器和多种内部数字滤波器。其转换速率 从 250SPS 到 4kSPS 。此外&#xff0c;芯片内部集成失调校准 寄存器和增益校准寄存器。 MS5583N …

精品基于Springboot的聊天交友系统的设计与实现

《[含文档PPT源码等]精品基于Springboot的聊天交友系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#xf…

2023年中国高校大数据挑战赛D题参考论文发布(全网首发)

腾讯文档】2023年大数据挑战赛资料说明 https://docs.qq.com/doc/DSEpWUVFySm1ObFB0 基于数据分析的行业职业技术培训能力评价 摘要 中国是制造业大国&#xff0c;产业门类齐全&#xff0c;每年需要培养大量的技能娴熟的技术工人进入工厂。本文将基于题目给出的数据&#x…

力扣--动态规划5.最长回文子串

class Solution { public:string longestPalindrome(string s) {// 获取输入字符串的长度int n s.size();// 如果字符串长度为1&#xff0c;直接返回原字符串&#xff0c;因为任何单个字符都是回文串if (n 1)return s;// 创建一个二维数组dp&#xff0c;用于记录子串是否为回…

AI生成对抗网络的解释

了解生成对抗网络 &#xff08;GAN&#xff09; 的不同方面和复杂性&#xff0c;GAN 是一种在人工智能 &#xff08;AI&#xff09; 领域内外使用的神经网络。本文将向您介绍 GAN&#xff0c;介绍什么是 GAN&#xff0c;并解释如何使用它们。 GAN简介 今天对称为 GAN 的通用模…

eclipse maven 项目导入报错

错误&#xff1a;Internal compiler error: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationDiscoveryVisitor 环境&#xff1a;eclipse Kepler Service Release 2 ,JDK1.7 解决办法&#xff1a;编码不对&#xff0c;修改

惠海H5118舞台灯芯片方案 RGBW共阳12V/24V/36V大功率 无频闪

H5118是一款外围电路简单的多功能平均电流型LED恒流驱动器&#xff0c;适用于5-48V电压范围的非隔离式大功率恒流LED驱动领域。芯片采用了平均电流模式控制&#xff0c;输出电流精度在3&#xff05;&#xff1b;输出电流对输入输出电压以及电感不敏感&#xff1b;芯片内部集成了…

鸿蒙开发岗位,面试到底问些啥?

随着春天的脚步临近&#xff0c;一年度的面试旺季却也已开始。就在2 月 28 日&#xff0c;”智联招聘崩了“登上微博热搜。有网友感叹&#xff0c;现在找工作太难了&#xff0c;发现有这么多人在竞争更焦虑了。 对此智联招聘回应称&#xff0c;由于求职流量新高&#xff0c;服务…