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 抓取动态网页内容方案详解
Dec 25 Python
Python3.2模拟实现webqq登录
Feb 15 Python
Python编程之event对象的用法实例分析
Mar 23 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 Python
Django封装交互接口代码
Jul 12 Python
浅谈Python描述数据结构之KMP篇
Sep 06 Python
python 实现单例模式的5种方法
Sep 23 Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 26 Python
python工具——Mimesis的简单使用教程
Jan 16 Python
python中使用np.delete()的实例方法
Feb 01 Python
Django和Ueditor自定义存储上传文件的文件名
Feb 25 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
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
php无限级分类实现方法分析
2016/10/19 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
理解python中生成器用法
2017/12/20 Python
Python Requests库基本用法示例
2018/08/20 Python
PyQt5组件读取参数的实例
2019/06/25 Python
Django框架 信号调度原理解析
2019/09/04 Python
python 求10个数的平均数实例
2019/12/16 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
浅谈python出错时traceback的解读
2020/07/15 Python
详细分析Python collections工具库
2020/07/16 Python
Python常用断言函数实例汇总
2020/11/30 Python
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
2014年感恩母亲演讲稿
2014/05/27 职场文书
甜品店创业计划书
2014/08/14 职场文书
批评与自我批评总结
2014/10/17 职场文书
2014年党务工作总结
2014/11/25 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
Element实现动态表格的示例代码
2021/08/02 Javascript
git中cherry-pick命令的使用教程
2022/06/25 Servers
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技