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实现方法
Nov 18 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
树莓派使用USB摄像头和motion实现监控
Jun 22 Python
python中append实例用法总结
Jul 30 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
Python-opencv 双线性插值实例
Jan 17 Python
Python列表切片常用操作实例解析
Mar 10 Python
Django中FilePathField字段的用法
May 21 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
Python如何读取、写入CSV数据
Jul 28 Python
python之json文件转xml文件案例讲解
Aug 07 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脚本代码
2011/02/19 PHP
php面向对象值单例模式
2016/05/03 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
Python写的一个简单DNS服务器实例
2014/06/04 Python
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
在Django框架中编写Context处理器的方法
2015/07/20 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
Python读写/追加excel文件Demo分享
2018/05/03 Python
对python3新增的byte类型详解
2018/12/04 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python生成器用法实例详解
2019/11/22 Python
python读取ini配置文件过程示范
2019/12/23 Python
python 读取串口数据的示例
2020/11/09 Python
中英文求职信范文
2014/01/27 职场文书
化妆品促销方案
2014/02/24 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS