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 19 Python
利用python实现xml与数据库读取转换的方法
Jun 17 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
详解python里的命名规范
Jul 16 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
总结Python图形用户界面和游戏开发知识点
May 22 Python
如何使用Python实现斐波那契数列
Jul 02 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 Python
python word转pdf代码实例
Aug 16 Python
python语言是免费还是收费的?
Jun 15 Python
python基础之模块的导入
Oct 24 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 全角转半角实现代码
2010/05/16 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
PHP进程同步代码实例
2015/02/12 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
浅析javascript的return语句
2015/12/15 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
详解Python当中的字符串和编码
2015/04/25 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
求职自荐信格式
2013/12/04 职场文书
音乐教学案例
2014/01/30 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
结婚保证书范文
2014/04/29 职场文书
机械专业求职信
2014/05/25 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书