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判断windows隐藏文件的方法
Mar 21 Python
python基础教程之匿名函数lambda
Jan 17 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 Python
tensorflow实现在函数中用tf.Print输出中间值
Jan 21 Python
python实现对变位词的判断方法
Apr 05 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 Python
Python基于内置函数type创建新类型
Oct 22 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 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采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
php上传大文件设置方法
2016/04/14 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
Jquery 的扩展方法总结
2011/10/01 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
2014/06/16 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
JsChart组件使用详解
2018/03/04 Javascript
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
python爬虫刷访问量 2019 7月
2019/08/01 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
购买大码女装:Lane Bryant
2016/09/07 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
介绍一下linux的文件权限
2012/02/15 面试题
物流专员岗位职责
2014/02/17 职场文书
食品安全宣传标语
2014/06/07 职场文书
政府采购方案
2014/06/12 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
java版 简单三子棋游戏
2022/05/04 Java/Android
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers