OpenCV学习笔记16-轮廓
来源:互联网 发布:淘宝集市店怎么申请 编辑:程序博客网 时间:2024/05/29 19:40
1.什么是轮廓
轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体检测识别中很有用。
- 为了更加准确,要使用二值化图像。寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测。
- 查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图像的话,你应该将原始图像存储到其他变量中。
- 查找轮廓就像在黑色背景中找白色物体。你应该记住,要找的物体是白色,背景是黑色。
2.查找轮廓
cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> image, contours, hierarchy
- image:输入的二值化图像;
- mode:轮廓检索模式;
1.cv2.RETR_LIST:只是提取所有的轮廓,不去创建任何父子关系;
2.cv2.RETR_EXTERNAL:只返回最外边的轮廓,忽略所有子轮廓;
3.cv2.RETR_CCOMP:返回所有的轮廓并将轮廓分为两级组织结构;
4.cv2.RETR_TREE:最完美的一个检索模式,返回所有轮廓,并且创建一个完整的组织结构列表。 - method:轮廓近似方法;
1.cv2.CHAIN_APPROX_NONE:存储所有边界点;
2.cv2.CHAIN_APPROX_SIMPLE:去除轮廓上的冗余点,压缩轮廓,节省内存开支(例如轮廓为直线时,只需要存储两个端点即可)。 - 返回值有三个:
1.图像;
2.轮廓:列表,存储图像中所有轮廓。每个轮廓是一个Numpy数组,包含对象边界点(x,y)的坐标;
3.轮廓的层析结构:一个含有四个元素的数组。[Next,Previous,First_Child,Parent]
3.绘制轮廓
cv2.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) -> image
- image:原始图像;
- contours:轮廓,是一个python列表;
- contourIdx:轮廓的索引(绘制独立轮廓时很有用,设置为-1时绘制所有轮廓);
- color:轮廓的颜色;
- thickness:轮廓的厚度。
import numpy as npimport cv2img = cv2.imread('1.png')imggray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, thresh = cv2.threshold(imggray, 127, 255, 0)image, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)#绘制所有轮廓img = cv2.drawContours(img, contours, -1, (0,255,0), 3)
阅读全文
0 0
- OpenCV学习笔记16-轮廓
- opencv学习笔记6:轮廓
- OpenCV学习笔记(7)—轮廓
- OpenCV学习笔记(十一) 轮廓操作
- opencv学习笔记(三十五)查找轮廓
- OpenCV学习笔记(一) 轮廓检测
- Opencv学习笔记-使用opencv计算轮廓凸包
- openCV学习笔记(3):opencv轮廓检测应用例子
- OpenCV学习笔记(15):opencv轮廓分析
- OpenCV笔记: 查找轮廓
- opencv轮廓距--笔记
- OpenCV学习:轮廓
- C# OpenCV学习笔记五之图像轮廓
- OpenCv学习笔记(七):轮廓的检测
- opencv学习笔记 根据滑动条参数检测轮廓
- OpenCV学习笔记(8)—轮廓的匹配
- Opencv学习笔记--使用convexityDefects计算轮廓凸缺陷
- opencv学习笔记12 图像轮廓的提取和绘制
- Qiniu-Plupload在微信中直接调用摄像头
- 检测字节流是否是UTF8编码
- 个人简介About me
- float与double的范围和精度
- 打印星星,Scanner输入列行数据
- OpenCV学习笔记16-轮廓
- Java学习第二十四天
- java入门首先了解的问题(一)
- 安装openssl 扩展的时候出现Cannot find config.m4. Make sure that you run '/usr/local/php/bin/phpize' in the to
- STM32printf函数实现方法
- Linux线程入门学习(一)-认识线程
- HDU
- HDU
- Android Studio打开不自动开启上次关闭的项目