opencv python 图像轮廓/检测轮廓/绘制轮廓的方法


Posted in Python onJuly 03, 2019

图像的轮廓检测,如计算多边形外界、形状毕竟、计算感兴趣区域等。

Contours : Getting Started

轮廓

简单地解释为连接所有连续点(沿着边界)的曲线,具有相同的颜色或强度.
轮廓是形状分析和物体检测和识别的有用工具

NOTE

  • 为获得更好的准确性,请使用二值图,在找到轮廓之前,应用阈值法或canny边缘检测
  • 从OpenCV 3.2开始,findContours()不再修改源图像,而是将修改后的图像作为三个返回参数中的第一个返回
  • 在OpenCV中,查找轮廓是从黑色背景中查找白色对象

findContours(image, mode, method[, contours[, hierarchy[, offset]]])

  • image:原图像
  • mode:轮廓检索模式
  • method:轮廓近似方法

输出为: 修改后的图像,轮廓,层次结构

轮廓是所有轮廓的列表.每个单独的轮廓是对象边界点的坐标.

轮廓检索模式 含义
cv2.RETR_EXTERNAL 只检测外轮廓
cv2.RETR_LIST 提取所有轮廓并将其放入列表,不建立等级关系
cv2.RETR_CCOMP 建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息。如果内孔内还有一个连通物体,这个物体的边界也在顶层
cv2.RETR_TREE 建立一个等级树结构的轮廓

轮廓逼近方法 含义
cv2.CHAIN_APPROX_NONE 存储所有的轮廓点,相邻的两个点的像素位置差不超过1,即max(abs(x1-x2),abs(y2-y1))==1
cv2.CHAIN_APPROX_SIMPLE 压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标,例如一个矩形轮廓只需4个点来保存轮廓信息
cv2.CHAIN_APPROX_TC89_L1 或 cv2.CHAIN_APPROX_TC89_KCOS 应用Teh-Chin链近似算法

代码:

import cv2
import numpy as np

img = cv2.imread('img.jpg')
imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(imgray, 127, 255, 0)
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

绘制轮廓

cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]])

  • image:原图像
  • contours:作为Python列表传递的轮廓
  • contourIdx:轮廓索引(在绘制单个轮廓时很有用。绘制所有轮廓,传递-1)

要绘制图像中的所有轮廓:
cv.drawContours(img,contours,-1,(0,255,0),3)

要绘制单个轮廓,比如第4个轮廓:
cv.drawContours(img,contours,3,(0,255,0),3)

但大多数情况下,绘制第4个轮廓,以下方法将非常有用:
cnt = contours[4]
cv.drawContours(img,[cnt],0,(0,255,0),3)

代码:

import cv2
import numpy as np

img = cv2.imread('img7.png')
imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(imgray, 127, 255, 0)
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cnt = contours[0]
cv2.drawContours(img,[cnt],0,(0,255,0),3)

cv2.imshow('src',img)

cv2.waitKey()

opencv python 图像轮廓/检测轮廓/绘制轮廓的方法

opencv python 图像轮廓/检测轮廓/绘制轮廓的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python工程师面试题 与Python基础语法相关
Jan 14 Python
python文件特定行插入和替换实例详解
Jul 12 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
基于numpy中数组元素的切片复制方法
Nov 15 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
Python Pandas数据结构简单介绍
Jul 03 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
Feb 17 Python
pandas DataFrame运算的实现
Jun 14 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
python 基于Apscheduler实现定时任务
Dec 15 Python
在cmd中查看python的安装路径方法
Jul 03 #Python
python动态进度条的实现代码
Jul 03 #Python
OpenCV 轮廓检测的实现方法
Jul 03 #Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 #Python
Python Pandas数据结构简单介绍
Jul 03 #Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 #Python
Python实现个人微信号自动监控告警的示例
Jul 03 #Python
You might like
php正则
2006/07/07 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
2018/05/17 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
python线程池的实现实例
2013/11/18 Python
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python如何判断数独是否合法
2016/09/08 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
详解anaconda安装步骤
2020/11/23 Python
python使用smtplib模块发送邮件
2020/12/17 Python
python time.strptime格式化实例详解
2021/02/03 Python
Python与C/C++的相互调用案例
2021/03/04 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
zooplus意大利:在线宠物商店
2019/08/07 全球购物
应届大学生简历中的自我评价
2014/01/15 职场文书
四年大学自我鉴定
2014/02/17 职场文书
学习保证书范文
2014/04/30 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
师德师风剖析材料
2014/09/30 职场文书
入党心得体会
2019/06/20 职场文书
Django drf请求模块源码解析
2021/06/08 Python