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 lxml模块安装教程
Jun 02 Python
Python程序中的观察者模式结构编写示例
May 27 Python
Python selenium 三种等待方式解读
Sep 15 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
python调用matlab的m自定义函数方法
Feb 18 Python
Django 中间键和上下文处理器的使用
Mar 17 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
python如何进行矩阵运算
Jun 05 Python
python Timer 类使用介绍
Dec 28 Python
python如何调用php文件中的函数详解
Dec 29 Python
python 常用的异步框架汇总整理
Jun 18 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中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
jquery 常用操作方法
2010/01/28 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
pyqt4教程之widget使用示例分享
2014/03/07 Python
python 实现让字典的value 成为列表
2019/12/16 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
银行优秀员工事迹
2014/02/06 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
售后客服工作职责
2014/06/16 职场文书
老乡聚会通知
2015/04/23 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
张思德观后感
2015/06/09 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
运动员代表致辞
2015/07/29 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers