如何读取cv2.findContours的结果?
How to read the result of cv2.findContours?
我有一个二进制二维矩阵 b
,形状为 (340,490)
并在其上应用 cv2.findContours(b,1,2)
。结果是一个 3D 数组,其形状 (6, 2, 1)
类似于 [[90,3],[5,60],[90, 110],[5,135],[3,200],[3,3]]
。我看不懂。我申请了 cv2.drawContours(b,contours, -1, (0,0,255), 3)
它成功了。因为我在原来的 b 上有一堆噪音。我不知道为什么它只能由 12 个数字修复。这些数字代表什么?
cv2.drawContours() 函数 returns 2 个值:
第一个在“Contours”中,第二个是“Hierarchy”。
轮廓包含图像中检测到的每个轮廓的边界点坐标。
要查找轮廓数,请使用:
len(Contours)
这将给出图像中找到的轮廓数。
现在“等高线”中的每个元素都是以下类型:
Contours[i] = [[[x1, y1]],
[[x2, y2]],
[[x3, y3]],
[[x4, y4]],
[[x5, y5]],
...
[[xn, yn]]]
其中x和y是图像中该轮廓边界点的坐标,n是该轮廓边界点的总数。
要了解 return 值“层次结构”,refer to this link。
我有一个二进制二维矩阵 b
,形状为 (340,490)
并在其上应用 cv2.findContours(b,1,2)
。结果是一个 3D 数组,其形状 (6, 2, 1)
类似于 [[90,3],[5,60],[90, 110],[5,135],[3,200],[3,3]]
。我看不懂。我申请了 cv2.drawContours(b,contours, -1, (0,0,255), 3)
它成功了。因为我在原来的 b 上有一堆噪音。我不知道为什么它只能由 12 个数字修复。这些数字代表什么?
cv2.drawContours() 函数 returns 2 个值:
第一个在“Contours”中,第二个是“Hierarchy”。
轮廓包含图像中检测到的每个轮廓的边界点坐标。
要查找轮廓数,请使用:
len(Contours)
这将给出图像中找到的轮廓数。
现在“等高线”中的每个元素都是以下类型:
Contours[i] = [[[x1, y1]],
[[x2, y2]],
[[x3, y3]],
[[x4, y4]],
[[x5, y5]],
...
[[xn, yn]]]
其中x和y是图像中该轮廓边界点的坐标,n是该轮廓边界点的总数。
要了解 return 值“层次结构”,refer to this link。