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实现豆瓣图片下载的方法
May 25 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
Oct 13 Python
详解python3中zipfile模块用法
Jun 18 Python
python实现名片管理系统项目
Apr 26 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 Python
Python zip函数打包元素实例解析
Dec 11 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
Python使用requests xpath 并开启多线程爬取西刺代理ip实例
Mar 06 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
Apr 22 Python
详解Python设计模式之策略模式
Jun 15 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
laravel安装和配置教程
2014/10/29 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
python django model联合主键的例子
2019/08/06 Python
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
期中考试反思800字
2014/05/01 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
飞越疯人院观后感
2015/06/09 职场文书
运动会班级前导词
2015/07/20 职场文书