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的Django框架中的通用视图
May 04 Python
解析Python中的二进制位运算符
May 13 Python
Python的组合模式与责任链模式编程示例
Feb 02 Python
让Django支持Sql Server作后端数据库的方法
May 29 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
python实现接口并发测试脚本
Jun 25 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
如何通过Django使用本地css/js文件
Jan 20 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
解决django接口无法通过ip进行访问的问题
Mar 27 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,不用COM,生成excel文件
2006/10/09 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
jquery 删除cookie失效的解决方法
2013/11/12 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
python 域名分析工具实现代码
2009/07/15 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
Django组件content-type使用方法详解
2019/07/19 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
python re模块和正则表达式
2021/03/24 Python
自荐信格式的六要素
2013/09/21 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
伏羲庙导游词
2015/02/09 职场文书
民政工作个人总结
2015/02/28 职场文书
小学重阳节活动总结
2015/03/24 职场文书
Django与数据库交互的实现
2021/06/03 Python