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程序员鲜为人知但你应该知道的17个问题
Jun 04 Python
Python判断操作系统类型代码分享
Nov 22 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
python使用turtle库与random库绘制雪花
Jun 22 Python
Python爬虫文件下载图文教程
Dec 23 Python
Django框架首页和登录页分离操作示例
May 28 Python
python字符串替换第一个字符串的方法
Jun 26 Python
Pandas实现dataframe和np.array的相互转换
Nov 30 Python
Python实现在Windows平台修改文件属性
Mar 05 Python
Python多线程Threading、子线程与守护线程实例详解
Mar 24 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
python基础之文件操作
Oct 24 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
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
php下获取http状态的实现代码
2014/05/09 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
浅谈COOKIE和SESSION区别
2015/07/19 PHP
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
详解Vue之事件处理
2020/07/10 Javascript
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
django Admin文档生成器使用详解
2019/07/22 Python
python urllib爬虫模块使用解析
2019/09/05 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
销售类个人求职信范文
2013/09/25 职场文书
英语自荐信常用语句
2013/12/13 职场文书
美术专业个人自我评价
2014/01/18 职场文书
家长会邀请书
2014/01/25 职场文书
护士个人年终总结
2015/02/13 职场文书
永远是春天观后感
2015/06/12 职场文书
2016寒假假期总结
2015/10/10 职场文书
简单聊聊Golang中defer预计算参数
2022/03/25 Golang