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实现将英文单词表示的数字转换成阿拉伯数字的方法
Jul 02 Python
详解python eval函数的妙用
Nov 16 Python
pandas将DataFrame的列变成行索引的方法
Apr 10 Python
python引入不同文件夹下的自定义模块方法
Oct 27 Python
python抓取网页内容并进行语音播报的方法
Dec 24 Python
Python完成毫秒级抢淘宝大单功能
Jun 06 Python
Python异常模块traceback用法实例分析
Oct 22 Python
TensorFlow 读取CSV数据的实例
Feb 05 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
python如何处理程序无法打开
Jun 16 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
Python字符串的15个基本操作(小结)
Feb 03 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
PHP 七大优势分析
2009/06/23 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
Javascript 构造函数 实例分析
2008/11/26 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
JS判断数组那点事
2017/10/10 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
详解JavaScript中的Object.is()与"==="运算符总结
2020/06/17 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
python机器人行走步数问题的解决
2018/01/29 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
Python assert关键字原理及实例解析
2019/12/13 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
财务会计毕业生自荐信
2013/11/02 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
经典洗发水广告词
2014/03/13 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
挂靠协议书
2015/01/27 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
python 远程执行命令的详细代码
2022/02/15 Python