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 正则表达式的高级用法
Dec 04 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
Jun 15 Python
python Pygame的具体使用讲解
Nov 03 Python
python 2.7 检测一个网页是否能正常访问的方法
Dec 26 Python
使用Django连接Mysql数据库步骤
Jan 15 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 Python
Python的对象传递与Copy函数使用详解
Dec 26 Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 Python
解决pytorch-yolov3 train 报错的问题
Feb 18 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 Python
Django Xadmin多对多字段过滤实例
Apr 07 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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
python射线法判断一个点在图形区域内外
2019/06/28 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
Python对wav文件的重采样实例
2020/02/25 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
Python Selenium库的基本使用教程
2021/01/04 Python
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
公司门卫管理制度
2014/02/01 职场文书
新任教师自我鉴定
2014/02/24 职场文书
家长写给孩子的评语
2014/04/18 职场文书
美化环境标语
2014/06/20 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP