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处理按钮消息的实例详解
Jul 11 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
python+mysql实现学生信息查询系统
Feb 21 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
Python后台开发Django会话控制的实现
Apr 15 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
Django框架反向解析操作详解
Nov 28 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
Django中Aggregation聚合的基本使用方法
Jul 09 Python
Python识别验证码的实现示例
Sep 30 Python
Python读写yaml文件
Mar 20 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 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
php生成与读取excel文件
2016/10/14 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python和C语言混合编程实例
2014/06/04 Python
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
django+echart数据动态显示的例子
2019/08/12 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
利用python爬取有道词典的方法
2020/12/08 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
小学教师自我鉴定
2013/11/07 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
个人委托书范本汇总
2014/10/01 职场文书
订货会邀请函
2015/01/31 职场文书
Spring依赖注入多种类型数据的示例代码
2022/03/31 Java/Android