Пример #1
0
def kMean(clusterNum):
    g = Graph(r"E:\ds2018")
    vocaDir = r"temp/vocabulary/"
    if not os.path.exists(vocaDir):
        os.makedirs(vocaDir)
    sift = SIFT()
    centers = []
    for i in range(g.getTypeNum()):
        print("[kmeans]:" + str(i))
        imgPaths = g.getTrainSet(i)
        features = np.float32([]).reshape((0, 128))
        for imgPath, type in imgPaths:
            imgMat = g.getGreyGraph(imgPath)
            if imgMat is None:
                print("[kmean]:" + imgPath + " is None")
                continue
            feature = sift.getFeature(imgMat)
            features = np.append(features, feature, axis=0)

        kmeans = KMeans(n_clusters=clusterNum).fit(features)
        filename = os.path.join(vocaDir, str(i) + ".npy")
        np.save(filename, kmeans.cluster_centers_)

        centers.append(kmeans.cluster_centers_)

    return centers
Пример #2
0
        if mat is None:
            print(imgPath+"is None")
            continue
        feature=sift.getFeature(mat)
        featVec=calcFeatVec(feature,centers[type],clusterNum)
        trainData=np.append(trainData,featVec,axis=0)
        trainTypes=np.append(trainTypes,np.int32([type]))

print(trainTypes.shape)
trainTypes=trainTypes.astype(np.float32)

'''
print("calc kmeans")
lbp = LBP([8], [1])
hog = HOG()
imgList = g.getTrainSet()
trainTypes, trainDataSift, centers = sift.calcVectorForSvm(
    imgList, clusterNum, 1)
print("calc kmeans done")

print("calc lbp")
trainDataLbp = lbp.getFeatVecForSvm(imgList, 0)
print("calc lbp done")

print("calc hog")
trainDataHog = hog.getFeatVecForSvm(imgList, 1)
print("calc hog done")

trainData = np.append(trainDataSift, trainDataLbp, axis=1)
trainData = np.append(trainData, trainDataHog, axis=1)
#trainData=trainDataLbp
Пример #3
0
        self.distance = distance
        self.angle = angle

    '''
    return :list of features
    '''

    def getFeature(self, imgMat):
        re = feature.greycomatrix(imgMat, self.distance, self.angle)
        features = []
        for i in range(len(self.distance)):
            for j in range(len(self.angle)):
                features.append(re[:, :, i, j])

        return features


g = Graph(r"E:\ds2018")
trainList = g.getTrainSet()
glcm = GLCM([1], [0, np.pi / 4, np.pi / 2, np.pi * 3 / 4])
features = []
print(trainList)
for img in trainList:
    #print(img[0])
    mat = g.getGreyGraph(img[0])
    if mat is None:
        print("None")
        continue
    features.extend(glcm.getFeature(mat))

print(features)