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 相关文章推荐
Tensorflow加载预训练模型和保存模型的实例
Jul 27 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
Python 运行 shell 获取输出结果的实例
Jan 07 Python
django框架防止XSS注入的方法分析
Jun 21 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
python3.7通过thrift操作hbase的示例代码
Jan 14 Python
如何使用PyCharm引入需要使用的包的方法
Sep 22 Python
如何通过python计算圆周率PI
Nov 11 Python
Pytorch 如何实现LSTM时间序列预测
May 17 Python
Python 实现定积分与二重定积分的操作
May 26 Python
Python中requests库的用法详解
Jun 05 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
简单采集了yahoo的一些数据
2007/02/14 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
Angularjs的ng-repeat中去除重复数据的方法
2016/08/05 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
python实现红包裂变算法
2016/02/16 Python
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
python实现猜数字小游戏
2020/03/24 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
如何通过python实现人脸识别验证
2020/01/17 Python
Python descriptor(描述符)的实现
2020/11/15 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
企业授权委托书范本
2014/09/22 职场文书
报到证办理个人委托书
2014/10/06 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
风之谷观后感
2015/06/11 职场文书
同事离别感言
2015/08/04 职场文书
导游词之江苏溱潼古镇
2019/11/27 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python