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下载文件时显示下载进度的方法
Apr 02 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
横向对比分析Python解析XML的四种方式
Mar 30 Python
Python实现树莓派WiFi断线自动重连的实例代码
Mar 16 Python
django实现同一个ip十分钟内只能注册一次的实例
Nov 03 Python
Python验证文件是否可读写代码分享
Dec 11 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
Python3 A*寻路算法实现方式
Dec 24 Python
Python request操作步骤及代码实例
Apr 13 Python
Python小白垃圾回收机制入门
Jun 09 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
用Python实现职工信息管理系统
Dec 30 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设计模式 Bridge (桥接模式)
2011/06/26 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
详解JS中Array对象扩展与String对象扩展
2016/01/07 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
webpack4 处理CSS的方法示例
2018/09/03 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
自我评价范文
2013/12/22 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
酒后驾车标语
2014/06/30 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
教师网络培训心得体会
2016/01/09 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
Python基础之变量的相关知识总结
2021/06/23 Python