'The recursive entry point for the blob extraction. The blobs and holes are presented
as a tree and we traverse up and across the tree.'

def _extractFromBinary(self, seq, isaHole, colorImg, minsize, maxsize, appx_level):

    retVal = []
    if (seq is None):
        return retVal
    nextLayerDown = []
    while True:
        if (not isaHole):
            temp = self._extractData(seq, colorImg, minsize, maxsize, appx_level)
            if (temp is not None):
                retVal.append(temp)
        nextLayer = seq.v_next()
        if (nextLayer is not None):
            nextLayerDown.append(nextLayer)
        seq = seq.h_next()
        if (seq is None):
            break
    for nextLayer in nextLayerDown:
        retVal += self._extractFromBinary(nextLayer, (not isaHole), colorImg, minsize, maxsize, appx_level)
    return retVal
