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 相关文章推荐
下载给定网页上图片的方法
Feb 18 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
Python中生成Epoch的方法
Apr 26 Python
Python实现一个转存纯真IP数据库的脚本分享
May 21 Python
Python实现的堆排序算法示例
Apr 29 Python
python生成ppt的方法
Jun 07 Python
Python3连接SQLServer、Oracle、MySql的方法
Jun 28 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
小 200 行 Python 代码制作一个换脸程序
May 12 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 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下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
canvas的神奇用法
2017/02/03 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
2020/11/09 Javascript
Python 实现链表实例代码
2017/04/07 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
建筑专业自荐信范文
2014/01/05 职场文书
党员培训思想汇报
2014/01/07 职场文书
安全生产月演讲稿
2014/05/09 职场文书
活动宣传稿范文
2015/07/23 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers