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 示例分享---逻辑推理编程解决八皇后
Jul 20 Python
python随机生成指定长度密码的方法
Apr 04 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
Selenium(Python web测试工具)基本用法详解
Aug 10 Python
python opencv判断图像是否为空的实例
Jan 26 Python
Python 分发包中添加额外文件的方法
Aug 16 Python
Python手动或自动协程操作方法解析
Jun 22 Python
Python2手动安装更新pip过程实例解析
Jul 16 Python
python字典与json转换的方法总结
Dec 28 Python
Pandas加速代码之避免使用for循环
May 30 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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一行代码获取文件后缀名实例分析
2014/11/12 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
DEFER怎么用?
2006/07/01 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
jQuery UI设置固定日期选择特效代码分享
2015/08/27 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
Dojo获取下拉框的文本和值实例代码
2016/05/27 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
express框架下使用session的方法
2019/07/31 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
Python计算回文数的方法
2015/03/11 Python
Python入门必须知道的11个知识点
2018/03/21 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
python selenium firefox使用详解
2019/02/26 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
酒店管理毕业生自我鉴定
2014/03/02 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
工程款申请报告
2015/05/15 职场文书
观后感开头
2015/06/19 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL