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 urllib模块urlopen()与urlretrieve()详解
Nov 01 Python
python实现html转ubb代码(html2ubb)
Jul 03 Python
Python文件及目录操作实例详解
Jun 04 Python
python 的列表遍历删除实现代码
Apr 12 Python
python将字典内容存入mysql实例代码
Jan 18 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
Python datetime模块使用方法小结
Jun 18 Python
python和php哪个更适合写爬虫
Jun 22 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 Python
Python中rapidjson参数校验实现
Jul 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使用自定义方法实现数组合并示例
2016/07/07 PHP
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
用js实现放大镜效果
2020/10/28 Javascript
Python文件操作类操作实例详解
2014/07/11 Python
python中的多重继承实例讲解
2014/09/28 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
python中模块的__all__属性详解
2017/10/26 Python
python如何让类支持比较运算
2018/03/20 Python
python使用插值法画出平滑曲线
2018/12/15 Python
python cumsum函数的具体使用
2019/07/29 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
飞利浦法国官网:Philips法国
2019/07/10 全球购物
加拿大拼图大师:Puzzle Master
2020/12/28 全球购物
公司营业员的工作总结自我评价
2013/10/05 职场文书
商场周年庆活动方案
2014/08/19 职场文书
村级四风对照检查材料
2014/08/24 职场文书
车辆委托书范本
2014/10/05 职场文书
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android