本文章介绍了如何使用Python和OpenCV库来提取二值图像中的轮廓,并计算每个轮廓的几何中心。文中详细讲解了相关方法及提供完整代码示例,帮助读者掌握图像处理的基础技能。
在使用Python的OpenCV库获取二值图像轮廓及中心点坐标时,可以按照以下步骤进行:
```python
groundtruth = cv2.imread(groundtruth_path)[:, :, 0]
h1, w1 = groundtruth.shape
contours, _ = cv2.findContours(groundtruth.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
if len(contours) != 1:
# 轮廓总数不为1时,继续执行其他操作
continue
M = cv2.moments(contours[0]) # 计算第一条轮廓的各阶矩,返回字典形式
center_x = int(M[m10] / M[m00]) # 中心点坐标计算(x)
center_y = int(M[m01] / M[m00]) # 中心点坐标计算(y)
# center_x 和 center_y 即为轮廓的中心点坐标
```
此代码段首先读取二值图像并获取其尺寸,然后查找所有外部轮廓。如果找到的轮廓数量不等于1,则继续执行其他操作。接着,它会利用`cv2.moments()`函数计算第一条轮廓的所有矩,并根据这些矩来确定该轮廓中心点的具体坐标(center_x, center_y)。