最大轮廓的下一层子轮廓怎么查找

import numpy as np
        cnts, hierarchy  = cv2.findContours(edged, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
        area = []
        for k in range(len(cnts)):
                area.append(cv2.contourArea(cnts[k]))
        max_id = np.argmax(np.array(area))
        cnt = cnts[max_id]
        a=np.array(hierarchy)
        cv2.drawContours(self.image, cnts[max_id:child_end],-1, (0, 255, 0), 7)

需要画出最大面积轮廓的所有下一层子轮廓,最大面积轮廓的索引max_id有了,下一层子轮廓是排在父轮廓后面,只要得到最后一个下一层子轮廓的索引,就可以确定轮廓号的范围,但是怎么得到下一层子轮廓的最后一个索引child_end呢,层级关系是一个一行四列的数组,其中第四列是记录父轮廓parent,比如:

hierarchy
array([[[ 7, -1,  1, -1],
[-1, -1,  2,  0],
[-1, -1,  3,  1],
[-1, -1,  4,  2],
[-1, -1,  5,  3],
[ 6, -1, -1,  4],如何查找这个4所在这一行索引
[-1,  5, -1,  4],如何查找这个4所在这一行索引
[ 8,  0, -1, -1],
[-1,  7, -1, -1]]])
如何查找第四列父轮廓parent等于4的索引呢?
child_end=max(np.where(a[3]==4))吗?似乎不行

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。