def findCentersFromLabels()

in main/src/image-preprocessing/image-preprocessing.py [0:0]


def findCentersFromLabels(labels):
    centers=[]
    maxLabel=labels.max()
    labelCounts=np.zeros(shape=(maxLabel+1), dtype=np.int)
    labelPositions=[]
    for d in range(len(labels.shape)):
        labelPositions.append(np.zeros(shape=(maxLabel+1), dtype=np.int))
    for idx, v in np.ndenumerate(labels):
        labelCounts[v] += 1
        ix=0
        for iv in idx:
            labelPositions[ix][v] += iv
            ix += 1
    for lp in range(maxLabel+1):
        # Skip background
        if (lp!=0):
            if (labelCounts[lp]>=minvoxels):
                ca = []
                ca.append(lp)
                ca.append(labelCounts[lp])
                for d in range(len(labels.shape)):
                    na = labelPositions[d]
                    ca.append(na[lp]/labelCounts[lp])
                centers.append(ca)
    return centers