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
Method for making requests to the Optimizely API
dataset/ETHPy150Open sightmachine/SimpleCV/SimpleCV/Features/MorphologyFeatureExtractor.py/MorphologyFeatureExtractor.extract--crossover with--dataset/ETHPy150Open optimizely/optimizely-client-python/optimizely/client.py/Client.request