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中捕捉详细异常信息的代码示例
Sep 18 Python
Python实现文件按照日期命名的方法
Jul 09 Python
ubuntu中配置pyqt4环境教程
Dec 27 Python
python爬取淘宝商品销量信息
Nov 16 Python
Django框架组成结构、基本概念与文件功能分析
Jul 30 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
python每天定时运行某程序代码
Aug 16 Python
python实现的config文件读写功能示例
Sep 24 Python
Python3实现发送邮件和发送短信验证码功能
Jan 07 Python
Django vue前后端分离整合过程解析
Nov 20 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 Python
如何在Python中妥善使用进度条详解
Apr 05 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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
php测试kafka项目示例
2020/02/06 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
python 画函数曲线示例
2019/12/04 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
Python基于内置函数type创建新类型
2020/10/22 Python
远程教育心得体会
2014/01/03 职场文书
酒会开场白大全
2015/06/01 职场文书
《秋思》教学反思
2016/02/23 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis