python+opencv轮廓检测代码解析


Posted in Python onJanuary 05, 2018

首先大家可以对OpenCV有个初步的了解,可以参考:简单了解OpenCV

轮廓(Contours),指的是有相同颜色或者密度,连接所有连续点的一条曲线。检测轮廓的工作对形状分析和物体检测与识别都非常有用。

在轮廓检测之前,首先要对图片进行二值化或者Canny边缘检测。在OpenCV中,寻找的物体是白色的,而背景必须是黑色的,因此图片预处理时必须保证这一点。

import cv2 
 
#读入图片 
img = cv2.imread("1.png") 
 
# 必须先转化成灰度图 
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
 
# 二值化 
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINAEY) 
 
# 寻找轮廓 
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 
 
# 画出轮廓,-1,表示所有轮廓,画笔颜色为(0, 255, 0),即Green,粗细为3 
cv2.drawContours(img, contours, -1, (0, 255, 0), 3) 
 
# 显示图片 
cv2.namedWindow("Contours", cv2.NORMAL_WINDOW) 
cv2.imshow("Contours", img) 
 
# 等待键盘输入 
cv2.waitKey(0) 
cv2.destroyAllWindows()

总结

本文实例涉及对图片的一些简单处理,比如图片的读取,灰度显示,二值化等,大家可以参考。

以上就是本文关于python+opencv轮廓检测代码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python快速查找算法应用实例
Sep 26 Python
python实现发送邮件及附件功能
Mar 02 Python
Python 3实战爬虫之爬取京东图书的图片详解
Oct 09 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
使用Python中的reduce()函数求积的实例
Jun 28 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
django的autoreload机制实现
Jun 03 Python
浅析NumPy 切片和索引
Sep 02 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
Jan 28 Python
python selenium UI自动化解决验证码的4种方法
Jan 05 #Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 #Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 #Python
django2 快速安装指南分享
Jan 05 #Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 #Python
用python制作游戏外挂
Jan 04 #Python
Python学习之Anaconda的使用与配置方法
Jan 04 #Python
You might like
PHP连接access数据库
2008/03/27 PHP
jQuery 源码分析笔记
2011/05/25 PHP
浅谈php命令行用法
2015/02/04 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
JavaScript 继承详解 第一篇
2009/08/30 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
Angular(5.2->6.1)升级小结
2018/12/27 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
Python中的exec、eval使用实例
2014/09/23 Python
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
Python中操作符重载用法分析
2016/04/29 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
最新教师自我评价分享
2013/11/12 职场文书
工商学院毕业生自荐信
2013/11/12 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
JavaScript分页组件使用方法详解
2021/07/26 Javascript