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 socket 超时设置 errno 10054
Jul 01 Python
python使用htmllib分析网页内容的方法
May 08 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
轻松掌握python设计模式之策略模式
Nov 18 Python
Python的装饰器使用详解
Jun 26 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
Python求平面内点到直线距离的实现
Jan 19 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 Python
浅谈Python xlwings 读取Excel文件的正确姿势
Feb 26 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 stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
javascript 精粹笔记
2010/05/09 Javascript
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
浅析jquery数组删除指定元素的方法:grep()
2016/05/19 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
Python 如何提高元组的可读性
2019/08/26 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
基于Python实现天天酷跑功能
2021/01/06 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
《会变的花树叶》教学反思
2014/02/10 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
企业家王石演讲稿:坚持与放下
2014/04/27 职场文书
个人查摆剖析材料
2014/10/04 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
天坛导游词
2015/02/02 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript