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的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
详解python3百度指数抓取实例
Dec 12 Python
python subprocess 杀掉全部派生的子进程方法
Jan 16 Python
Python语言实现百度语音识别API的使用实例
Dec 13 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
Python实现12306火车票抢票系统
Jul 04 Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 Python
解决python 文本过滤和清理问题
Aug 28 Python
python 画函数曲线示例
Dec 04 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 24 Python
Python列表的索引与切片
Apr 07 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 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
用ODBC的分页显示
2006/10/09 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
javascript的事件描述
2006/09/08 Javascript
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
Angular中$cacheFactory的作用和用法实例详解
2016/08/19 Javascript
Angularjs实现分页和分页算法的示例代码
2016/12/23 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
python地震数据可视化详解
2019/06/18 Python
python+tkinter实现学生管理系统
2019/08/20 Python
python 调试冷知识(小结)
2019/11/11 Python
python 有效的括号的实现代码示例
2019/11/11 Python
Python如何使用Gitlab API实现批量的合并分支
2019/11/27 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
电气专业应届生求职信
2013/11/01 职场文书
通信工程毕业生求职信
2013/11/16 职场文书
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
便利店促销方案
2014/02/20 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS