contours, hierarchy = cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]])
时间: 2023-07-02 19:11:57 浏览: 125
python cv2截取不规则区域图片实例
`cv2.findContours()` 函数的参数解释如下:
- `image`: 输入的二值化图像(一般是经过阈值化处理后的图像,只有黑白两种颜色),要求是一个 8 位的单通道图像。
- `mode`: 轮廓检索模式,是一个表示轮廓检索方式的参数。它有以下 4 种取值:
- `cv2.RETR_EXTERNAL`:只检测最外层的轮廓;
- `cv2.RETR_LIST`:检测所有的轮廓,并将它们保存在列表中;
- `cv2.RETR_CCOMP`:检测所有的轮廓,并将它们组织成两层,即外层轮廓和内层轮廓;
- `cv2.RETR_TREE`:检测所有的轮廓,并重构轮廓之间的嵌套层次关系。
- `method`: 轮廓逼近方法,是一个表示轮廓逼近方式的参数。它有以下 5 种取值:
- `cv2.CHAIN_APPROX_NONE`:保存所有的轮廓点;
- `cv2.CHAIN_APPROX_SIMPLE`:仅保存轮廓的端点;
- `cv2.CHAIN_APPROX_TC89_L1` 和 `cv2.CHAIN_APPROX_TC89_KCOS`:使用 Teh-Chin 链逼近算法中的一个。
- `contours`:可选参数,表示轮廓点集列表,每个轮廓是一个 numpy 数组。如果不为空,则函数将在此参数中返回结果。
- `hierarchy`:可选参数,表示轮廓间的关系,一般用于构建轮廓的层次结构。如果不为空,则函数将在此参数中返回结果。
- `offset`:可选参数,表示轮廓点集的偏移量。默认值为 `(0, 0)`,即偏移量为 0。
函数的返回值是一个包含轮廓点集列表和轮廓间关系的二元组 `(contours, hierarchy)`,其中:
- `contours` 是一个列表,其中每个元素都是一个 numpy 数组,表示一个轮廓的点集;
- `hierarchy` 是一个可选的 numpy 数组,表示轮廓间的关系,一般用于构建轮廓的层次结构。
阅读全文