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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
Python实现的二维码生成小软件
Jul 11 Python
Python使用迭代器捕获Generator返回值的方法
Apr 05 Python
Django与JS交互的示例代码
Aug 23 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
使用Python在Windows下获取USB PID&VID的方法
Jul 02 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
python matplotlib绘制三维图的示例
Sep 24 Python
详解Python flask的前后端交互
Mar 31 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
11个PHP 分页脚本推荐
2011/08/15 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
php获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
smarty模板数学运算示例
2016/12/11 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
JavaScript 拾漏补遗
2009/12/27 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
js操作二进制数据方法
2018/03/03 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
2017/12/09 Python
python3 读写文件换行符的方法
2018/04/09 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
Django与pyecharts结合的实例代码
2020/05/13 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang