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 相关文章推荐
python虚拟环境virualenv的安装与使用
Dec 18 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
Jul 07 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
Python socket连接中的粘包、精确传输问题实例分析
Mar 24 Python
浅谈Python中的字符串
Jun 10 Python
Python如何读写二进制数组数据
Aug 01 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
mysql+php分页类(已测)
2008/03/31 PHP
php实现cc攻击防御和防止快速刷新页面示例
2014/02/13 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
详解ES6中的let命令
2020/04/05 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
Python的time模块中的常用方法整理
2015/06/18 Python
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
使用python 3实现发送邮件功能
2018/06/15 Python
python开发前景如何
2020/06/11 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
python利用线程实现多任务
2020/09/18 Python
python实现图片素描效果
2020/09/26 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
jQuery treeview树形结构应用
2021/03/24 jQuery
妇科医生自荐信
2013/11/05 职场文书
应聘编辑职位自荐信范文
2014/01/05 职场文书
致200米运动员广播稿
2014/02/06 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
募捐倡议书
2014/04/14 职场文书
会议欢迎词
2015/01/23 职场文书
最感人的道歉情书
2015/05/12 职场文书
2019 入党申请书范文
2019/07/10 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫