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搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
Python运用于数据分析的简单教程
Mar 27 Python
Python中使用dom模块生成XML文件示例
Apr 05 Python
wxpython实现图书管理系统
Mar 12 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
详解python数据结构和算法
Apr 18 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
python web框架中实现原生分页
Sep 08 Python
python爬取新闻门户网站的示例
Apr 25 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
超级简单的发送邮件程序
2006/10/09 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
js 替换
2008/02/19 Javascript
JavaScript 无符号右移运算符
2009/04/17 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
动态Axios的配置步骤详解
2018/01/12 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
python笔记(2)
2012/10/24 Python
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
Java如何支持I18N?
2016/10/31 面试题
教师求职推荐信范文
2013/11/20 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
和解协议书
2014/04/16 职场文书
2014年材料员工作总结
2014/11/19 职场文书
平遥古城导游词
2015/02/03 职场文书
小学大队长竞选稿
2015/11/20 职场文书
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript