博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查找轮廓(cv2.findCountours函数)
阅读量:4548 次
发布时间:2019-06-08

本文共 969 字,大约阅读时间需要 3 分钟。

1.输入为二值图像,黑色为背景,白色为目标

2.该函数会修改原图像,因此若想保留原图像在,则需拷贝一份,在拷贝图里修改。

一.查找轮廓

cv2.findContours()

   三个输入参数:输入图像(二值图像),轮廓检索方式,轮廓近似方法

1.轮廓检索方式

cv2.RETR_EXTERNAL 只检测外轮廓
cv2.RETR_LIST 检测的轮廓不建立等级关系
cv2.RETR_CCOMP 建立两个等级的轮廓,上面一层为外边界,里面一层为内孔的边界信息
cv2.RETR_TREE 建立一个等级树结构的轮廓

2.轮廓近似办法

cv2.CHAIN_APPROX_NONE 存储所有边界点
cv2.CHAIN_APPROX_SIMPLE 压缩垂直、水平、对角方向,只保留端点
cv2.CHAIN_APPROX_TX89_L1 使用teh-Chini近似算法
cv2.CHAIN_APPROX_TC89_KCOS 使用teh-Chini近似算法

 

    三个返回值:图像,轮廓,轮廓的层析结构

 

 

二.绘制轮廓

cv2.drawContours()

    五个输入参数:原始图像,轮廓(python列表),轮廓的索引(当设置为-1时,绘制所有轮廓),画笔颜色,画笔大小

   一个返回值:返回绘制了轮廓的图像

代码:

import cv2   img = cv2.imread('D:\\test\\contour.jpg')    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)    ret, binary = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)        binary , contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)    # 输出为三个参数  cv2.drawContours(img,contours,-1,(0,0,255),3)        cv2.imshow("img", img)    cv2.waitKey(0)

 

转载于:https://www.cnblogs.com/wmy-ncut/p/9889294.html

你可能感兴趣的文章
测试的基本概念
查看>>
【ZOJ】3209 Treasure Map
查看>>
ActiveMQ 消息队列服务
查看>>
《程序是给自己看的还是给别人看的》
查看>>
(12) PHP 随笔---Smarty模板引擎 单模板多缓存、局部不缓存 20--21
查看>>
【转】Math.Atan2 方法
查看>>
C++设计模式之工厂方法模式
查看>>
poj3984_bfs+回溯路径
查看>>
MyEclipse使用技巧
查看>>
[译]径向镜片反畸变滤波
查看>>
畅通工程-最小生成树+并查集
查看>>
top命令输出解释以及load average 详解及排查思路
查看>>
Ajax的封装
查看>>
Java传入参数个数不确定可用(Type ... values)
查看>>
POJ 2081
查看>>
记录下zend studio 的xdebug 在调试安装
查看>>
ES6阅读笔记
查看>>
数字基带信号分类
查看>>
移动HTML5前端性能优化指南(转)
查看>>
Jq 遍历each()方法
查看>>