'This method takes in a image and returns some basic morphology
characteristics about the largest blob in the image. The
if a color image is provided the threshold operation is applied.'

def extract(self, img):

    retVal = None
    if (self.mThresholdOpeation is not None):
        bwImg = self.mThresholdOpeation(img)
    else:
        bwImg = img.binarize()
    if (self.mBlobMaker is None):
        self.mBlobMaker = BlobMaker()
    fs = self.mBlobMaker.extractFromBinary(bwImg, img)
    if ((fs is not None) and (len(fs) > 0)):
        fs = fs.sortArea()
        retVal = []
        retVal.append((fs[0].mArea / fs[0].mPerimeter))
        retVal.append(fs[0].mAspectRatio)
        retVal.append(fs[0].mHu[0])
        retVal.append(fs[0].mHu[1])
        retVal.append(fs[0].mHu[2])
        retVal.append(fs[0].mHu[3])
        retVal.append(fs[0].mHu[4])
        retVal.append(fs[0].mHu[5])
        retVal.append(fs[0].mHu[6])
    return retVal
