python opencv根据颜色进行目标检测的方法示例


Posted in Python onJanuary 15, 2020

颜色目标检测就是根据物体的颜色快速进行目标定位。使用cv2.inRange函数设定合适的阈值,即可以选出合适的目标。

建立项目colordetect.py,代码如下:

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import cv2

def colorDetect():
 image = cv2.imread('./1.png')
 # 使用RGB颜色空间检测红 蓝 黄 灰,设置合适的阈值
 boundaries = [
 ([17, 15, 100], [50, 56, 200]),
 ([86, 31, 4], [220, 88, 50]),
 ([25, 146, 190], [62, 174, 250]),
 ([103, 86, 65], [145, 133, 128])
 ]

 for lower, upper in boundaries:
 lower = np.array(lower, dtype='uint8')
 upper = np.array(upper, dtype='uint8')
 # 低于lower和高于upper的像素为黑色,lower-upper之间的像素为白色
 mask = cv2.inRange(image, lower, upper)
 # 利用蒙版,进行图像的逻辑与运算
 output = cv2.bitwise_and(image, image, mask=mask)

 cv2.imshow('image', np.hstack([image, output]))
 cv2.waitKey(0)
 cv2.destroyAllWindows()

def main():
 colorDetect()

if __name__ == "__main__":
 main()

定义RGB颜色列表:

boundaries = [
 ([17, 15, 100], [50, 56, 200]),
 ([86, 31, 4], [220, 88, 50]),
 ([25, 146, 190], [62, 174, 250]),
 ([103, 86, 65], [145, 133, 128])
]

该部分([17, 15, 100], [50, 56, 200]),表示图像像素R>=100, B>=15, G>=15和R<=200, B<=56, G<=50的像素将视为红色。

执行代码,结果如下:

python opencv根据颜色进行目标检测的方法示例

总结

要检测图像中颜色,第一件事要做的就是定义像素值的上限和下限。不同的颜色空间具有不同上下限值,定义了上限和下限后,就可以调用cv2.inRange方法返回一个mask,将该mask与图像进行逻辑与bitwise_and就可以得到该图像。

参考资料
https://www.pyimagesearch.com

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python操作时间和日期之asctime()方法的使用
May 22 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
Python利用字典将两个通讯录文本合并为一个文本实例
Jan 16 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
对python函数签名的方法详解
Jan 22 Python
机器学习实战之knn算法pandas
Jun 22 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 Python
什么是python的列表推导式
May 26 Python
Python 绘制可视化折线图
Jul 22 Python
python opencv肤色检测的实现示例
Dec 21 Python
Python页面加载的等待方式总结
Feb 28 Python
Python中文分词库jieba(结巴分词)详细使用介绍
Apr 07 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 #Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 #Python
Pytorch模型转onnx模型实例
Jan 15 #Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 #Python
详解Python实现进度条的4种方式
Jan 15 #Python
pytorch常见的Tensor类型详解
Jan 15 #Python
pytorch 常用线性函数详解
Jan 15 #Python
You might like
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP 常用函数库和一些实用小技巧
2009/01/01 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
javascript 写类方式之七
2009/07/05 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
js控制table合并具体实现
2014/02/20 Javascript
AngularJS语法详解
2015/01/23 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
详解Python文本操作相关模块
2017/06/22 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
详解Python with/as使用说明
2018/12/13 Python
Python秒算24点实现及原理详解
2019/07/29 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
python 决策树算法的实现
2020/10/09 Python
html5开发之viewport使用
2013/10/17 HTML / CSS
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
物业管理毕业生个人的求职信
2013/11/30 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
合作意向书范本
2014/03/31 职场文书
化工操作工岗位职责
2014/04/29 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
村党支部公开承诺书
2014/05/29 职场文书
食品安全汇报材料
2014/08/18 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
2016父亲节感恩话语
2015/12/09 职场文书