python实现简单颜色识别程序


Posted in Python onFebruary 19, 2020

本文实例为大家分享了python实现简单颜色识别程序的具体代码,供大家参考,具体内容如下

import numpy as np
import cv2
font= cv2.FONT_HERSHEY_SIMPLEX
lower_red=np.array([0,127,128])#红色阈值下界
higher_red=np.array([10,255,255])#红色阈值上界
lower_green=np.array([35,110,106])#绿色阈值下界
higher_green=np.array([77,255,255])#绿色阈值上界
cap=cv2.VideoCapture(0)#打开电脑内置摄像头
if(cap.isOpened()):
 while(True):
  ret,frame=cap.read()#按帧读取,这是读取一帧
  img_hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
  mask_red=cv2.inRange(img_hsv,lower_red,higher_red)#可以认为是过滤出红色部分,获得红色的掩膜
  mask_green=cv2.inRange(img_hsv,lower_green,higher_green)#获得绿色部分掩膜
  mask_green = cv2.medianBlur(mask_green, 7) # 中值滤波
  mask_red = cv2.medianBlur(mask_red, 7) # 中值滤波
  mask=cv2.bitwise_or(mask_green,mask_red)#三部分掩膜进行按位或运算
  image1,cnts1,hierarchy1=cv2.findContours(mask_red,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)#轮廓检测
  image3,cnts3,hierarchy3=cv2.findContours(mask_green,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)

  for cnt in cnts1:
   (x,y,w,h)=cv2.boundingRect(cnt)#该函数返回矩阵四个点
   cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 255), 2)#将检测到的颜色框起来
   cv2.putText(frame,'red',(x,y-5),font,0.7,(0,0,255),2)

  for cnt in cnts3:
   (x, y, w, h) = cv2.boundingRect(cnt) # 该函数返回矩阵四个点
   cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) # 将检测到的颜色框起来
   cv2.putText(frame, 'green', (x, y - 5), font, 0.7, (0,255,0), 2)
  cv2.imshow('frame',frame)
  k=cv2.waitKey(20)&0xFF
  if k ==27:
   break

cv2.waitKey(0)
cv2.destroyAllWindows()

我发现只要多于两种颜色识别起来误差就极大极大,等以后学到会回来进行优化的。目前识别两种颜色还是比较稳的。

python实现简单颜色识别程序

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 命令行参数sys.argv
Sep 06 Python
详解Python中的文本处理
Apr 11 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
python实现发送邮件功能
Jul 22 Python
python学习基础之循环import及import过程
Apr 22 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
在Python中使用MongoEngine操作数据库教程实例
Dec 03 Python
浅谈pycharm导入pandas包遇到的问题及解决
Jun 01 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 Python
Python中的套接字编程是什么?
Jun 21 Python
python和anaconda的区别
May 06 Python
python绘制封闭多边形教程
Feb 18 #Python
python Shapely使用指南详解
Feb 18 #Python
Python模拟FTP文件服务器的操作方法
Feb 18 #Python
git查看、创建、删除、本地、远程分支方法详解
Feb 18 #Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
Feb 18 #Python
python实现根据给定坐标点生成多边形mask的例子
Feb 18 #Python
python有序查找算法 二分法实例解析
Feb 18 #Python
You might like
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
php实现快速排序的三种方法分享
2014/03/12 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
JavaScript QueryString解析类代码
2010/01/17 Javascript
input的focus方法使用
2010/03/13 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
利用Promise自定义一个GET请求的函数示例代码
2019/03/20 Javascript
ElementUI 修改默认样式的几种办法(小结)
2020/07/29 Javascript
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
python实现周期方波信号频谱图
2018/07/21 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
营销主管自我评价怎么写
2013/09/19 职场文书
丑小鸭教学反思
2014/02/03 职场文书
核心价值观演讲稿
2014/05/13 职场文书
学校节能减排倡议书
2014/05/16 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS