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保存MongoDB上的文件到本地的方法
Mar 16 Python
python处理按钮消息的实例详解
Jul 11 Python
python 猴子补丁(monkey patch)
Jun 26 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
python redis连接 有序集合去重的代码
Aug 04 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
详解python中各种文件打开模式
Jan 19 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
python爬虫用request库处理cookie的实例讲解
Feb 20 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
Jun 05 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程序员应该了解MongoDB的五件事
2013/06/03 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
php显示时间常用方法小结
2015/06/05 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
JavaScript 动态改变图片大小
2009/06/11 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
JS数组求和的常用方法实例小结
2019/01/07 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
python 判断自定义对象类型
2009/03/21 Python
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
python查看列的唯一值方法
2018/07/17 Python
Python中的heapq模块源码详析
2019/01/08 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
python logging设置level失败的解决方法
2020/02/19 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
模具数控专业自荐信
2014/01/27 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技