Python-opencv实现红绿两色识别操作


Posted in Python onJune 04, 2020

1.颜色空间转换(RGB转HSV)

为了较准确的调红色和绿色的HSV,我使用cv2.createTrackbar()函数创建了六个滚动条

#创建HSV最低滚动条
cv2.createTrackbar('H_min','image',35,180,nothing)
cv2.createTrackbar('S_min','image',43,255,nothing)
cv2.createTrackbar('V_min','image',46,255,nothing)

#创建HSV最高滚动条
cv2.createTrackbar('H_max','image',0,180,nothing)
cv2.createTrackbar('S_max','image',255,255,nothing)
cv2.createTrackbar('V_max','image',255,255,nothing)

Python-opencv实现红绿两色识别操作

实际效果如图

Python-opencv实现红绿两色识别操作

Python-opencv实现红绿两色识别操作

2.识别颜色并画矩形框

颜色阈值已经确定了,这就可以进行颜色识别了。

为了让识别更稳定,在代码中加入自适应阈值。

th_img = cv2.adaptiveThreshold(mask,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY_INV,5,2)

3.画矩形框

使用函数cv2.findContours()来检测物体轮框

再使用函数cv2.boundingRect()查找最小矩形框

使用函数cv2.rectangle()画出

contours_green,hierarchy = cv2.findContours(th_green,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
contours_red,hierarchy = cv2.findContours(th_red,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
for red in contours_red:
 x_red,y_red,w_red,h_red = cv2.boundingRect(red)
 if w_red>width|h_red>height:
 cv2.rectangle(img,(x_red,y_red),((x_red+h_red),(y_red+w_red)),(0,255,0),1)
for red in contours_red:
 x_red,y_red,w_red,h_red = cv2.boundingRect(red)
 if w_red>width|h_red>height:
 cv2.rectangle(img,(x_red,y_red),((x_red+h_red),(y_red+w_red)),(0,255,0),1)

为了凸显出颜色的差距,我使用绿色的矩形框,画红色的物体,用红色的矩形框画绿色物体

Python-opencv实现红绿两色识别操作

以上这篇Python-opencv实现红绿两色识别操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Django框架中编写Context处理器的方法
Jul 20 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
python批量替换多文件字符串问题详解
Apr 22 Python
对numpy Array [: ,] 的取值方法详解
Jul 02 Python
Python Learning 列表的更多操作及示例代码
Aug 22 Python
Python实现多进程的四种方式
Feb 22 Python
详解python 3.6 安装json 模块(simplejson)
Apr 02 Python
浅析python 动态库m.so.1.0错误问题
May 09 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
如何解决pycharm调试报错的问题
Aug 06 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 #Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 #Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 #Python
Python中操作各种多媒体,视频、音频到图片的代码详解
Jun 04 #Python
Python简单实现词云图代码及步骤解析
Jun 04 #Python
Python坐标轴操作及设置代码实例
Jun 04 #Python
Python flask框架实现查询数据库并显示数据
Jun 04 #Python
You might like
利用PHP动态生成VRML网页
2006/10/09 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php 无限分类的树类代码
2009/12/03 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
实例浅析js的this
2016/12/11 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
python获取各操作系统硬件信息的方法
2015/06/03 Python
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
django中send_mail功能实现详解
2018/02/06 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
Django如何自定义分页
2018/09/25 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
采购部部门职责
2013/12/15 职场文书
餐饮加盟计划书
2014/01/10 职场文书
上课玩手机检讨书
2014/02/08 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
颁奖典礼主持词
2014/03/25 职场文书
离婚协议书格式
2015/01/26 职场文书
立案决定书范文
2015/06/24 职场文书