python opencv检测目标颜色的实例讲解


Posted in Python onApril 02, 2018

实例如下所示:

# -*- coding:utf-8 -*-
__author__ = 'kingking'
__version__ = '1.0'
__date__ = '14/07/2017'
import cv2
import numpy as np
import time
if __name__ == '__main__':
 Img = cv2.imread('example.png')#读入一幅图像
 kernel_2 = np.ones((2,2),np.uint8)#2x2的卷积核
 kernel_3 = np.ones((3,3),np.uint8)#3x3的卷积核
 kernel_4 = np.ones((4,4),np.uint8)#4x4的卷积核
 if Img is not None:#判断图片是否读入
  HSV = cv2.cvtColor(Img, cv2.COLOR_BGR2HSV)#把BGR图像转换为HSV格式
  '''
  HSV模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)
  下面两个值是要识别的颜色范围
  '''
  Lower = np.array([20, 20, 20])#要识别颜色的下限
  Upper = np.array([30, 255, 255])#要识别的颜色的上限
  #mask是把HSV图片中在颜色范围内的区域变成白色,其他区域变成黑色
  mask = cv2.inRange(HSV, Lower, Upper)
  #下面四行是用卷积进行滤波
  erosion = cv2.erode(mask,kernel_4,iterations = 1)
  erosion = cv2.erode(erosion,kernel_4,iterations = 1)
  dilation = cv2.dilate(erosion,kernel_4,iterations = 1)
  dilation = cv2.dilate(dilation,kernel_4,iterations = 1)
  #target是把原图中的非目标颜色区域去掉剩下的图像
  target = cv2.bitwise_and(Img, Img, mask=dilation)
  #将滤波后的图像变成二值图像放在binary中
  ret, binary = cv2.threshold(dilation,127,255,cv2.THRESH_BINARY) 
  #在binary中发现轮廓,轮廓按照面积从小到大排列
  contours, hierarchy = cv2.findContours(binary,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) 
  p=0
  for i in contours:#遍历所有的轮廓
   x,y,w,h = cv2.boundingRect(i)#将轮廓分解为识别对象的左上角坐标和宽、高
   #在图像上画上矩形(图片、左上角坐标、右下角坐标、颜色、线条宽度)
   cv2.rectangle(Img,(x,y),(x+w,y+h),(0,255,),3)
   #给识别对象写上标号
   font=cv2.FONT_HERSHEY_SIMPLEX
   cv2.putText(Img,str(p),(x-10,y+10), font, 1,(0,0,255),2)#加减10是调整字符位置
   p +=1
  print '黄色方块的数量是',p,'个'#终端输出目标数量
  cv2.imshow('target', target)
  cv2.imshow('Mask', mask)
  cv2.imshow("prod", dilation)
  cv2.imshow('Img', Img)
  cv2.imwrite('Img.png', Img)#将画上矩形的图形保存到当前目录  
 while True:
  Key = chr(cv2.waitKey(15) & 255)
  if Key == 'q':
   cv2.destroyAllWindows()
   break

原始图像

python opencv检测目标颜色的实例讲解

处理之后保存的图像

python opencv检测目标颜色的实例讲解

以上这篇python opencv检测目标颜色的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
深入讨论Python函数的参数的默认值所引发的问题的原因
Mar 30 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
Apr 28 Python
Python正则表达式完全指南
May 25 Python
python实现数据图表
Jul 29 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
Python 绘图库 Matplotlib 入门教程
Apr 19 Python
python保存网页图片到本地的方法
Jul 24 Python
Python绘制股票移动均线的实例
Aug 24 Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 Python
Python log模块logging记录打印用法解析
Jan 20 Python
PyQt5事件处理之定时在控件上显示信息的代码
Mar 25 Python
Python如何使用logging为Flask增加logid
Mar 30 Python
浅谈python配置与使用OpenCV踩的一些坑
Apr 02 #Python
python基础教程项目二之画幅好画
Apr 02 #Python
通过Python 接口使用OpenCV的方法
Apr 02 #Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 #Python
在python3.5中使用OpenCV的实例讲解
Apr 02 #Python
Python-OpenCV基本操作方法详解
Apr 02 #Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 #Python
You might like
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
php object转数组示例
2014/01/15 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
jquery 操作DOM案例代码分享
2012/04/05 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
Python中optparse模块使用浅析
2015/01/01 Python
Python抽象类的新写法
2015/06/18 Python
python 网络编程详解及简单实例
2017/04/25 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
Linux下python制作名片示例
2018/07/20 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
Python目录和文件处理总结详解
2019/09/02 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
员工年终演讲稿
2014/01/03 职场文书
《李广射虎》教学反思
2014/04/27 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
自主招生自荐信范文
2015/03/04 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
Python编写nmap扫描工具
2021/07/21 Python