为了账号安全,请及时绑定邮箱和手机立即绑定

如何读取 cv2.findContours 的结果?

如何读取 cv2.findContours 的结果?

HUH函数 2023-03-01 15:43:36
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 个数字修复。这些数字代表什么?
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

cv2.drawContours()函数返回 2 个值:

“Contours”中的第一个,第二个是“Hierarchy”。

轮廓包含图像中检测到的每个轮廓的边界点坐标。

要查找轮廓数,请使用:

len(Contours)

这将给出图像中找到的轮廓数。

现在“Contours”中的每个元素都是以下类型:

Contours[i] = [[[x1, y1]],
               [[x2, y2]],
               [[x3, y3]],
               [[x4, y4]],
               [[x5, y5]],
               ...
               [[xn, yn]]]

其中 x 和 y 是图像中该轮廓边界点的坐标,n 是该轮廓边界点的总数。

要了解返回值“层次结构”,请参阅此链接


查看完整回答
反对 回复 2023-03-01
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信