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多线程编程方式分析示例详解
Dec 06 Python
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
栈和队列数据结构的基本概念及其相关的Python实现
Aug 24 Python
python入门基础之用户输入与模块初认识
Nov 14 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
python 集合 并集、交集 Series list set 转换的实例
May 29 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
python制作填词游戏步骤详解
May 05 Python
Django中提供的6种缓存方式详解
Aug 05 Python
Django之路由层的实现
Sep 09 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
openCV提取图像中的矩形区域
Jul 21 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将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
jQuery 位置插件
2008/12/25 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python中的类与对象之描述符详解
2015/03/27 Python
简单介绍Python中的RSS处理
2015/04/13 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
python多任务之协程的使用详解
2019/08/26 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
生物技术研究生自荐信
2013/11/12 职场文书
初中生物教学反思
2014/01/10 职场文书
银行招聘自荐信
2015/03/06 职场文书
python pyhs2 的安装操作
2021/04/07 Python