centers = [] for contour in contours: moments = cv2.moments(contour) center_x = int(moments['m10'] / moments['m00']) center_y = int(moments['m01'] / moments['m00']) centers.append((center_x, center_y))
时间: 2023-06-27 19:08:05 浏览: 179
提供轮廓拓扑结信息(hierarchy)且contourIdx的值为-1时函数drawContours()是按怎样的规律绘制轮廓
5星 · 资源好评率100%
这段代码是用于获取一组轮廓(contours)的中心点(center_x, center_y),具体步骤如下:
1. 首先定义一个空列表 centers,用于存储每个轮廓的中心点坐标。
2. 对于每个轮廓,使用 cv2.moments() 函数计算轮廓的矩(moments),矩是对图像像素值分布情况的描述。
3. 通过矩的计算结果,可以得到轮廓的中心点坐标。其中,m10 表示 x 轴方向上的一阶矩,m01 表示 y 轴方向上的一阶矩,m00 表示零阶矩,即轮廓面积。
4. 将每个轮廓的中心点坐标存储到 centers 列表中。
需要注意的是,如果某个轮廓的面积为0,则会出现除数为0的情况,因此在实际使用时需要进行判断和处理。
阅读全文