hierarchy = hierarchy [0]在Python中意味着什么?

时间:2018-04-05 07:17:09

标签: python numpy cv2

我的任务是将一些Python代码翻译成C#,由于我没有使用Python的经验,我一直遇到一些困难,而且该程序甚至使用OpenCV和NumPy。

这是代码的一部分,我不确定如何分配hierarchy[0]

_, contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

hierarchy = hierarchy[0]

1 个答案:

答案 0 :(得分:1)

这项任务没有什么特别之处。

只是阅读代码,我很清楚findContours()方法返回三个值的元组,第三个是序列并分配给hierarchy。然后,下一行只接受该序列中的第一个元素,并将其分配回相同的名称。

如果您正在尝试理解为什么它会执行此操作以及如何将其转换为C ++,则需要转到read the cv2::findContours() documentation。查看cv2文档时,它总是向您显示C ++版本,而C ++使用输出参数; findCountours()contourshierarchy作为两个输出数组,函数将写入该数组。

在Python代码中,您只需将数组作为返回值。在这里,hierarchy被记录为

  

可选输出向量,包含有关图像拓扑的信息。它具有与轮廓数量一样多的元素。

因此hierarchy[0]有关于找到的第一个轮廓的信息,并且任何其他元素都被丢弃。

在代码的C ++翻译中,您必须传入contourshierarchy的数组,然后再次从后者中提取第一个元素。