一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。

H: 0 — 180

S: 0 — 255

V: 0 — 255

此处把部分红色归为紫色范围(颜色阈值可以尝试调整,调到最佳):

定义颜色阈值代码如下:

# -*- coding: utf-8 -*-
# @Time : 2021/12/28 17:07
# @Author : ZY
# @Site :
# @File : colorList.py
# @Software: PyCharm
import numpy as np
import collections# 定义字典存放颜色分量上下限
# 例如:{颜色: [min分量, max分量]}
# {'red': [array([160,  43,  46]), array([179, 255, 255])]}def getColorList():dict = collections.defaultdict(list)# 黑色lower_black = np.array([0, 0,0])upper_black = np.array([180,255,46])color_list = []color_list.append(lower_black)color_list.append(upper_black)dict['黑'] = color_list# #绿色lower_gray = np.array([35, 43, 46])upper_gray = np.array([77, 255, 255])color_list = []color_list.append(lower_gray)color_list.append(upper_gray)dict["绿"]=color_list# #黄lower_gray = np.array([26, 43, 46])upper_gray = np.array([34, 255, 255])color_list = []color_list.append(lower_gray)color_list.append(upper_gray)dict["黄"] = color_list# 紫色lower_purple = np.array([125, 43, 46])upper_purple = np.array([180, 255, 255])color_list = []color_list.append(lower_purple)color_list.append(upper_purple)dict['紫'] = color_listreturn dictif __name__ == '__main__':color_dict = getColorList()print(color_dict)num = len(color_dict)print('num=', num)for d in color_dict:print('key=', d)print('value=', color_dict[d][1])

这是一个单独的colorList.py文件,通过导入py文件调用即可

在所需要的地方定义好函数,如get_color(frame)函数,我所定义如下代码:

import colorList     #首先导入刚写好的colorList.py文件
def get_color(frame):# print('go in get_color')hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)maxsum = -100color = Nonecolor_dict = colorList.getColorList()for d in color_dict:mask = cv2.inRange(hsv, color_dict[d][0], color_dict[d][1])# cv2.imwrite(d + '.jpg', mask)binary = cv2.threshold(mask, 127, 255, cv2.THRESH_BINARY)[1]binary = cv2.dilate(binary, None, iterations=2)cnts, hiera = cv2.findContours(binary.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)sum = 0for c in cnts:sum += cv2.contourArea(c)if sum > maxsum:maxsum = sumcolor = dreturn color

在主函数中首先读取你所识别的照片,然后调用定义,进行识别图片颜色,具体代码如下:

photo = cv2.imread("screen.png")
Color = get_color(photo)
print(Color)

输出结果为

别的颜色经测试也可以正常识别。

python颜色识别demo相关推荐

  1. python 颜色识别_在python中构建颜色识别器

    python 颜色识别 In this post, I will show you how to build your own color recognizer using Python. This ...

  2. python颜色识别原理_电脑控制手机 Python实现颜色识别功能

    原标题:电脑控制手机 Python实现颜色识别功能 用电脑控制手机好几年了,Total Control作为安卓手机的多控系统,是我用过各方面都比较稳定的一款软件了.通过脚本实现识别颜色是其强大功能之一 ...

  3. python人脸识别demo

    现在人脸识别功能已经很成熟了,就想做个好玩的小功能: 只要某人来到摄像头前,就播放语音:某某某,你好! 分解一下实现步骤,大概就是: 摄像头采集图像,然后运行人脸识别算法,识别出人脸特征,进行人脸比对 ...

  4. 树莓派摄像头运用python颜色识别

    运用摄像头拍照 import cv2 import osoutput_dir ='/home/pi/Desktop/py' i = 1 cap = cv2.VideoCapture(0) while ...

  5. python颜色识别_浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法

    [更新]主要提供两种方案: 方案一:(参考网上代码,感觉实用性不是很强)使用PIL截取图像,然后将RGB转为HSV进行判断,统计判断颜色,最后输出RGB值 方案二:使用opencv库函数进行处理.(效 ...

  6. python颜色识别_颜色检测python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 版权声明:本文为博主原创文章,未经博主允许不得转载. https:blog.cs ...

  7. python颜色识别算法_纯Python编写K-means算法,提取图片中的主体颜色

    在文章 今天我用Python手写了一个K-means算法,来完成同样的功能. 聚类是数据挖掘中一种非常重要的学习流派,指将未标注的样本数据中相似的分为同一类,正所谓"物以类聚,人以群分&qu ...

  8. python颜色识别原理_python+opencv实现颜色检测、轮廓检测、颜色追踪

    准备工作 python配置numpy和openCv库 读取图像和视频图像cv2.imread(路径) cv2.imshow(窗口名称,输出对象) cv2.waitkey(等待时间)import cv2 ...

  9. python颜色识别_Python人体肤色检测

    Python人体肤色检测 概述 本文中的人体肤色检测功能采用 OpenCV 库实现, OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Andro ...

  10. python 人脸识别demo

    使用python第三方模块face_recognition实现人脸识别,并根据已命名的图片把名字显示在屏幕上. 安装模块 需要安装opencv,face_recognition,face_recogn ...

最新文章

  1. 3D-HEVC视频编码技术
  2. 第一课--EFM32GG11系列--点亮LED灯
  3. 关于APP更新,两包共存的解决方案
  4. 开发人员如何学习 Kubernetes
  5. python生成json_python之生成多层json结构的实现
  6. 三十五 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy分布式爬虫要点
  7. 理解OpenCL数据类型
  8. 前IBM人工智能科学家为你解读AI行业的三大核心素养
  9. 洛谷试炼场 普及常见模板
  10. 支付行业常见信息安全合规认证小记
  11. 最近发现一个不错的网站,可以用它来赚钱
  12. C语言循环语句——while、for、do while
  13. 成人学习国画可能产生哪些错误的思想?
  14. 2021-10-26 2021年B站1024安全攻防题第一题(加密解密)
  15. 百度云主机只能访问首页,bcloud_nginx_user.conf配置
  16. python txt文件读写 pandas_Python数据分析之Pandas读写外部数据文件!
  17. matlab中变量a无法识别,MATLAB 中定义变量名,不能出现以下哪种符号?
  18. 【详细教程】-Python绘图模块Matplotlib
  19. 深度学习Week7-好莱坞明星识别(Pytorch)
  20. 黑板简笔画说课通用PPT模板

热门文章

  1. 按键精灵定位坐标循环_按键精灵基础命令教程
  2. 《EDA技术与Verilog HDL设计》第4、5 章读书笔记与总结
  3. 《点石成金-访客至上的web和移动可用性设计秘籍》读书笔记
  4. linux系统原理论文3000字,linux操作系统(论文).doc
  5. mallplus多商户商城 让支付触手可及,封装了微信支付、QQ支付、支付宝支付、京东支付、银联支付常用的支付方式以及各种常用的接口
  6. 金狮加密视频播放器破解翻录限制转换为mp4工具使用教程
  7. 华为畅享max支持鸿蒙,华为手机怎么升级鸿蒙?华为鸿蒙系统支持手机型号大全...
  8. table 转义字符 html,HTML转义字符表
  9. 基于RV1126平台imx291分析 --- rkcif_mipi注册
  10. 软件项目管理 案例教程复习要点