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网页请求urllib2模块简单封装代码
Feb 07 Python
使用grappelli为django admin后台添加模板
Nov 18 Python
python安装教程 Pycharm安装详细教程
May 02 Python
浅谈Python生成器generator之next和send的运行流程(详解)
May 08 Python
python 中split 和 strip的实例详解
Jul 12 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
Python带动态参数功能的sqlite工具类
May 26 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
python移位运算的实现
Jul 15 Python
基于Python和C++实现删除链表的节点
Jul 06 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
python3美化表格数据输出结果的实现代码
Apr 14 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
windows xp下安装pear
2006/12/02 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
CentOS安装php v8js教程
2015/02/26 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
js单词形式的运算符
2014/05/06 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
python插入排序算法的实现代码
2013/11/21 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
简单了解python列表和元组的区别
2020/05/14 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
售后服务经理岗位职责范本
2014/02/22 职场文书
师范毕业生求职信
2014/07/11 职场文书
党员承诺书格式范文
2015/04/28 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技