OpenCV轮廓提取和连通域计算
轮廓检测 (Contour Detection)
1.基本轮廓检测
1 | import cv2 |
2.轮廓检索模式
cv2.RETR_EXTERNAL
: 只检索外部轮廓cv2.RETR_LIST
: 检索所有轮廓,不建立层级关系cv2.RETR_CCOMP
: 检索所有轮廓,建立两级层级关系cv2.RETR_TREE
: 检索所有轮廓,建立完整层级关系
3.轮廓近似方法
cv2.CHAIN_APPROX_NONE
: 存储所有轮廓点cv2.CHAIN_APPROX_SIMPLE
: 压缩水平、垂直和对角线段,只保留端点
4.轮廓属性计算
1 | for contour in contours: |
连通域计算 (Connected Components)
1.基本连通域分析
1 | # 使用cv2.connectedComponents |
2.带统计信息的连通域分析
1 | # 使用cv2.connectedComponentsWithStats |
3.连通域过滤
1 | # 根据面积过滤小连通域 |
4.保存所有连通域
1 | num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(g_cam, connectivity=8) |
5.单独保存连通域
1 | for label in range(1, num_labels): |