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)

最新文章

  1. svnserver hook python
  2. python——argsort函数
  3. RabbitMQ配置文件
  4. Runtime(动态添加属性)
  5. 提高Vector容器的删除效率
  6. class id 区别
  7. python & pandas链接mysql数据库
  8. web.xml filter 顺序
  9. Web开发-表单验证
  10. Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)
  11. H5手机开发锁定表头和首列(惯性滚动)解决方案
  12. python接口自动化-session_自动发文
  13. c++ explicit 构造函数
  14. html学习笔记之2——多媒体
  15. R语言-增加图例
  16. sublime text下安装插件autoprefixer
  17. 整型数字转utf8
  18. opencv----模板匹配
  19. 纯css修改复选框默认样式
  20. c++编译时打印宏定义

热门文章

  1. python自动化开发-[第二十三天]-初识爬虫
  2. bzoj1497 最小割
  3. python对象-多态
  4. Java概念、语法和变量基础整理
  5. Netsarang
  6. python 第一类对象 闭包 迭代器
  7. python 列表 元祖 集合
  8. Tomcat与Web应用
  9. spring中获取dao或对象中方法的实例化对象
  10. Nullable<DateTime> DateTime? 格式转换问题 tostring()