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 18 Python
python解决网站的反爬虫策略总结
Oct 26 Python
Python中的上下文管理器和with语句的使用
Apr 17 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
python使用递归的方式建立二叉树
Jul 03 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
python实现文字版扫雷
Apr 24 Python
python进行参数传递的方法
May 12 Python
Django中的模型类设计及展示示例详解
May 29 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
python中温度单位转换的实例方法
Dec 27 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的历史和优缺点
2006/10/09 PHP
PHP 分页类(模仿google)-面试题目解答
2009/09/13 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
解析strtr函数的效率问题
2013/06/26 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
Yii使用migrate命令执行sql语句的方法
2016/03/15 PHP
Laravel框架学习笔记之批量更新数据功能
2019/05/30 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
介绍下static、final、abstract区别
2015/01/30 面试题
Ruby如何定义一个类
2012/10/08 面试题
申请任职学生会干部自荐书范文
2014/02/13 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
提档介绍信范文
2015/10/22 职场文书
Python 流媒体播放器的实现(基于VLC)
2021/04/28 Python
Python基础之数据结构详解
2021/04/28 Python
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis