cv2.findContours()函数中的mode参数都有什么? A cv2.RETR_LIST B cv2.RETR_EXTERNAL C cv2.RETR_CCOMP D cv2.RETR_TREE
时间: 2023-11-27 11:44:07 浏览: 92
cv2.findContours()函数中的mode参数有四种,分别是:
A. cv2.RETR_LIST:表示提取所有轮廓,不建立轮廓间的父子关系;
B. cv2.RETR_EXTERNAL:表示只提取最外层的轮廓,所有的子轮廓都不考虑;
C. cv2.RETR_CCOMP:表示提取所有轮廓,并将轮廓分为两级,即外层轮廓和内层轮廓;
D. cv2.RETR_TREE:表示提取所有轮廓,并重构轮廓之间的父子关系。
相关问题
cv2.findContours()语法详解
cv2.findContours() 是 OpenCV 库中的一个函数,用于在图像中查找轮廓。它的语法如下:
contours, hierarchy = cv2.findContours(image, mode, method)
- image:输入的二进制图像,通常是灰度图像或二值图像。
- mode:轮廓检索模式,指定了轮廓的层次结构。常用的模式有:
- cv2.RETR_EXTERNAL:只检测最外层的轮廓。
- cv2.RETR_LIST:检测所有的轮廓,不建立层次关系。
- cv2.RETR_CCOMP:检测所有的轮廓,并将它们分为两个层次:顶层和子层。
- cv2.RETR_TREE:检测所有的轮廓,并重建它们的层次结构。
- method:轮廓逼近方法,用于压缩轮廓。常用的方法有:
- cv2.CHAIN_APPROX_NONE:保存所有边界点。
- cv2.CHAIN_APPROX_SIMPLE:只保留端点。
函数的返回值是一个包含轮廓坐标的列表 contours 和一个包含轮廓之间关系的层次结构 hierarchy。contours 是一个 Numpy 数组,每个元素代表一个轮廓,包含一系列点坐标。hierarchy 是一个包含四个元素的数组,每个元素代表一个轮廓的层次关系。
介绍cv2.findContours
`cv2.findContours` 是 OpenCV 中用于查找图像轮廓的函数,它可以在二值化图像中查找所有的连通轮廓,返回轮廓的点集和层次结构信息。 `cv2.findContours` 的输入参数包括:
- `image`:需要查找轮廓的二值化图像,通常为灰度图像或者二值图像。
- `mode`:轮廓查找模式,可以为 `cv2.RETR_EXTERNAL`(只检测外轮廓)、`cv2.RETR_LIST`(检测所有轮廓,不建立层次关系)等。
- `method`:轮廓逼近方法,可以为 `cv2.CHAIN_APPROX_NONE`(保存所有轮廓点)、`cv2.CHAIN_APPROX_SIMPLE`(压缩水平、垂直、对角线方向的点,仅保留端点)等。
`cv2.findContours` 的输出结果是一个三元组 `(contours, hierarchy, ret)`,其中:
- `contours`:表示检测到的轮廓的点集,是一个列表,每个元素都是一个 Numpy 数组,表示一个轮廓。
- `hierarchy`:表示轮廓的层次结构,是一个 Numpy 数组,每行的四个元素表示当前轮廓的后一个轮廓、前一个轮廓、第一个子轮廓和父轮廓。
- `ret`:表示是否成功检测到轮廓的标志,如果成功则为 True,否则为 False。
可以使用 `cv2.drawContours` 函数在图像上绘制检测到的轮廓,也可以使用 `cv2.boundingRect` 函数计算轮廓的边界矩形或者最小包围矩形等形状信息。
阅读全文