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逐行读取文件内容的三种方法
Jan 20 Python
python时间整形转标准格式的示例分享
Feb 14 Python
python实现的登陆Discuz!论坛通用代码分享
Jul 11 Python
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
pymongo实现多结果进行多列排序的方法
May 16 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
Windows下PyCharm安装图文教程
Aug 27 Python
pymysql模块的使用(增删改查)详解
Sep 09 Python
聊聊python中的循环遍历
Sep 07 Python
Python实现粒子群算法的示例
Feb 14 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 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函数,php爱好者站推荐
2007/03/19 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
简单的js分页脚本
2009/05/21 Javascript
javascript字符串拼接的效率问题
2010/12/25 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
浅谈关于angularJs中使用$.ajax的注意点
2017/08/12 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
layui实现数据分页功能
2019/07/27 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
python爬虫爬取网页表格数据
2018/03/07 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
django 读取图片到页面实例
2020/03/27 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
JAVA软件工程师测试题
2014/07/25 面试题
资产评估专业大学生求职信
2013/09/29 职场文书
园长自我鉴定
2013/10/06 职场文书
项目建议书模板
2014/05/12 职场文书
大学生实习推荐信
2015/03/27 职场文书
python实现网络五子棋
2021/04/11 Python
基于JavaScript实现年月日三级联动
2021/06/22 Javascript