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 base64编码解码实例
Jun 21 Python
python简单实现刷新智联简历
Mar 30 Python
通过Python实现自动填写调查问卷
Sep 06 Python
python先序遍历二叉树问题
Nov 10 Python
Python Pandas 箱线图的实现
Jul 23 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
Django 自动生成api接口文档教程
Nov 19 Python
python socket通信编程实现文件上传代码实例
Dec 14 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
基于Python词云分析政府工作报告关键词
Jun 02 Python
如何使用Python处理HDF格式数据及可视化问题
Jun 24 Python
如何使用python写截屏小工具
Sep 29 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
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
python检测某个变量是否有定义的方法
2015/05/20 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
Python骚操作之动态定义函数
2019/03/26 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
python中树与树的表示知识点总结
2019/09/14 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
求职自荐信范文格式
2013/11/29 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
文员岗位职责
2015/02/04 职场文书
基于angular实现树形二级表格
2021/10/16 Javascript