helper.py 1.04 KB
__author__ = 'hadoop'

from ..mfeat import HOG, IntraBlockDiff
import tempfile


def get_feat(image, feattype='ibd', frommem=False, **kwargs):
    size = kwargs.get('size', (48, 48))
    if frommem:
        try:
            tmpf = tempfile.NamedTemporaryFile(suffix='.jpg', mode='w+b')
            tmpf.write(image)
            tmpf.seek(0)
            image = tmpf.name

            if feattype == 'hog':
                feater = HOG.FeatHOG(size=size)
            elif feattype == 'ibd':
                feater = IntraBlockDiff.FeatIntraBlockDiff()
            else:
                raise Exception("Unknown feature type!")
            desc = feater.feat(image)

        except Exception as e:
            print e
            raise
        finally:
            tmpf.close()

    else:
        if feattype == 'hog':
            feater = HOG.FeatHOG(size=size)
        elif feattype == 'ibd':
            feater = IntraBlockDiff.FeatIntraBlockDiff()
        else:
            raise Exception("Unknown feature type!")
        desc = feater.feat(image)

    return desc