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创建关联数组(字典)的方法
May 04 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
python批量制作雷达图的实现方法
Jul 26 Python
python使用matplotlib模块绘制多条折线图、散点图
Apr 26 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
几行Python代码爬取3000+上市公司的信息
Jan 24 Python
pycharm 安装JPype的教程
Aug 08 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
使用matplotlib动态刷新指定曲线实例
Apr 23 Python
python中round函数如何使用
Jun 19 Python
python如何绘制疫情图
Sep 16 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 echo 输出字符串函数详解
2010/05/13 PHP
php ftp文件上传函数(基础版)
2010/06/03 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
js代码实现微博导航栏
2015/07/30 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
Python牛刀小试密码爆破
2011/02/03 Python
python安装教程
2018/02/28 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
如何用Python徒手写线性回归
2021/01/25 Python
python openpyxl模块的使用详解
2021/02/25 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
安全标准化汇报材料
2014/02/03 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
个人授权委托书范文
2014/09/21 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL