参考

  1. Opencv简单颜色识别 Youtube教学视频
  2. BGR HSV颜色模型

步骤

一、 BGR 和 HSV 颜色模型

BGR Model
BGR模型表示三种颜色通道:红、绿、蓝,采用BGR模型的图像的颜色就是由红绿蓝三种颜色加权和混合而成。
此类模型的缺点显而易见,就是很难去表达一种颜色。比如你修改了如下BGR中的B值,间接地, G和R通道的颜色也会被改变掉。

HSV Model
H表示Hue颜色;S表示Saturation饱和度;V表示Value明度。
简单理解就是
H指定一种颜色,从0到360;
S是白光所占程度,从0到1, 0表示饱和度最高,就是白光最多;
V表示明度,从0到1, 0表示最暗

二、使用摄像头,利用HSV实现颜色识别

1. 思路
读取摄像头视频流,取窗口中间一点,将其像素值(BGR)转换为HSV,然后根据Hue来简单判断颜色。然后显示到窗口上。

2.代码

import cv2cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH,1080) #set window's width and height
cap.set(cv2.CAP_PROP_FRAME_HEIGHT,780) while True:_, frame = cap.read()hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)height,width,_ = hsv_frame.shapewx = int(width/2) # center wy = int(height/2)center_color = hsv_frame[wy,wx] #中心点HSV像素值hue_value = center_color[0] #取Hueif hue_value < 5:color = 'RED'elif hue_value < 22:color = 'ORANGE'elif hue_value < 33:color = 'YELLOW'elif hue_value < 78:color = 'GREEN'elif hue_value <131:color = 'BLUE'elif hue_value < 167:color = 'VIOLET'else:color ='RED'bgr_color = frame[wy,wx]b,g,r = int(bgr_color[0]),int(bgr_color[1]),int(bgr_color[2])cv2.circle(frame,(wx,wy),5,(0,255,0),3) # center (x,y)cv2.putText(frame,color,(10,50),0,1,(b,g,r),2)cv2.imshow('frame',frame)key = cv2.waitKey(1)if key ==27:breakcap.release()
cv2.destroyAllWindows()

3.效果

【Opencv小项目 1】Opencv实现简单颜色识别相关推荐

  1. python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源)

    python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源) 见链接

  2. python打开是什么颜色-python实现简单颜色识别程序

    本文实例为大家分享了python实现简单颜色识别程序的具体代码,供大家参考,具体内容如下 import numpy as np import cv2 font= cv2.FONT_HERSHEY_SI ...

  3. OpenCV实践小项目(二) -文档ocr扫描识别

    1. 写在前面 今天整理OpenCV入门的第二个实战小项目, 前一篇文章是信用卡数字识别, 主要运用了OpenCV基础图像处理操作里面的轮廓检测, 边缘检测,形态学操作, 今天的这个项目叫做文档ocr ...

  4. 10 个开源 Python OpenCV 小项目,YouTube热门

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自 | 新机器视觉 1. Drowsiness Detect ...

  5. android opencv颜色识别,opencv学习(2)-简单颜色识别并跟踪

    本次来我们用opencv来实现识别跟踪蓝色物体并返回位置坐标的功能. 该功能分为两部分,识别颜色,跟踪颜色. 要想实现颜色的识别,我们要打开摄像头,读取捕获的图像.将图像的颜色通道转化为HSV,设置选 ...

  6. C/C++,Qt,Python,OpenCV小项目实战-实时桌面颜色查询

    源码连接如下(含Qt,VS,Python) https://download.csdn.net/download/qq78442761/10723417 程序运行截图如下: (原理)逻辑如下: 1.使 ...

  7. OpenCV小项目:图像融合(泊松融合—Possion Blending)

    原理 太多了,看这些博客吧 主要参考博客1: http://blog.csdn.net/hjimce/article/details/45716603 主要参考博客2: http://blog.csd ...

  8. Python小项目四:实现简单的web服务器

    本博客是整理在学习实验楼的课程过程中记录下的笔记形成的,参考:https://www.shiyanlou.com/courses/552.不同之处在于实验楼使用python2.7,而博主这里使用的是p ...

  9. css --- [练手小项目]样式小结(字体、颜色的语义 清除浮动的使用)

    说明 源代码 1.1 CSS属性书写顺序(重点) 建议遵循以下顺序: 1.布局定位属性: display / position / float / clear / visibility / overf ...

最新文章

  1. Verilog中Dump函数及用法
  2. stdio.h: C++输入输出操作
  3. 初识tmux---编译安装tmux
  4. Struts2 校验数据问题
  5. C#事件(Event)的理解
  6. json txt格式转换器_SpringBoot项目中如何定制HTTP消息转换器
  7. 让那些为Webkit优化的网站也能适配IE10(转载)
  8. SQL语句之Insert
  9. php变量作用域(花括号、global、闭包)
  10. ssh-scan处理手记
  11. 7-157 求一元二次方程的根 (20 分)
  12. addressof表达式不能转换为long_C++入门到精通(七),数据类型的转换
  13. ARM64移动处理器解惑
  14. 我的世界java版种子多村庄_《我的世界》“村庄与掠夺”PE版种子推荐,出生点就7个村庄相连...
  15. Java一步到位!彻底了解JDK、JRE、JVM分别是什么及它们之间的联系
  16. YOLOV5-打标签建立自己的数据集
  17. 从AWSome Day你可以学到什么?
  18. 随机过程(联合平稳随机过程)
  19. P1067 多项式输出---java
  20. 程序猿生存指南-11 入职朗云

热门文章

  1. GIT 命令学习:获取与创建项目
  2. Linux程序动态库的加载
  3. 启动MySQL发生系统错误 1058
  4. 【洛谷4920】[WC2015] 未来程序(提答题)
  5. Android:一篇就够!全面详细解析APN(涉及内容:GGSN,authtype,MVNO,pdp,Apns-conf,supl,hipri,dun)
  6. 计算尖峰电流的目的_尖峰电流的形成及抑制与去耦电容的作用解读
  7. Chip-seq数据寻找Indel
  8. Mac答疑「7」超详细mac新手教程-Mac界面篇
  9. 百度搜索引擎结果网址参数 搜索框提示词搜索方式(rsv_sug2)
  10. 京东11.11:商品搜索系统架构设计解密