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实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
Python修改MP3文件的方法
Jun 15 Python
Python中操作mysql的pymysql模块详解
Sep 13 Python
Python编程之string相关操作实例详解
Jul 22 Python
python模块之paramiko实例代码
Jan 31 Python
python切片及sys.argv[]用法详解
May 25 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
python接口自动化如何封装获取常量的类
Dec 24 Python
Python基于jieba, wordcloud库生成中文词云
May 13 Python
python datetime时间格式的相互转换问题
Jun 11 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
Jun 30 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中Object对象的笔记分享
2011/06/28 PHP
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
jquery radio 操作代码
2011/03/16 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
vue中监听返回键问题
2019/08/28 Javascript
python 实现调用子文件下的模块方法
2018/12/07 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
浅析Python __name__ 是什么
2020/07/07 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
HTML5 Canvas 起步(1) - 基本概念
2009/05/12 HTML / CSS
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
中软Java笔试题
2012/11/11 面试题
机械工程及自动化专业求职信
2014/09/03 职场文书
社区重阳节活动总结
2015/03/24 职场文书
退休欢送会主持词
2015/07/01 职场文书
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
Python实现自动玩连连看的脚本分享
2022/04/04 Python