Exemple #1
0
def load_data():

    #save classes as ints 
    #create map from class->index 
    print("Loading images and classes")
    images, classes = loader.loadTrainingAndClasses()
    
    unique_classes = list(set(classes))
    int_unique_classes={unique_classes[i]:i for i in range(len(unique_classes))}
    
    #convert classes with map
    int_classes=[int_unique_classes[cl] for cl in classes]
    int_classes=numpy.array(int_classes)
    
    #preprocess images
    print("Pre-processing images")
    thumbsize = 28;
    thumbs = [misc.imresize(x,(thumbsize,thumbsize)) for x in images] 
    grays = [color.rgb2gray(x) for x in thumbs] 
    normies = [exposure.equalize_hist(x) for x in grays] 
    normies = np.array(normies)
    
    return normies, int_classes
    for i in range(splits):
        for j in range(splits):
            subImage = image[i * (width / splits) : (i + 1) * (width / splits), j * (height / splits) : (j+1) * (height / splits), :]
            angle, magnitude = meanAngle(subImage)
            result[i, j] = angle
            if magnitude < threshold:
                result[i,j] = -1
    return result
    
def splitMeanAngleFeatures(image, splits = 2, threshold = 10):
    result = splitMeanAngle(image, splits, threshold).flatten()
    return result

print("Loading images")
#images, classes = loader.loadProblematicImagesAndClasses()
images, classes = loader.loadTrainingAndClasses()
amount = len(images)

print("Making thumbnails")

thumbsize = 50
thumbs = [misc.imresize(x,(thumbsize, thumbsize)) for x in images]

print("Calculating features")
#features = list(map(extractor.calculateNormalizedColorFeatures, images))
splits = 5
features = numpy.zeros([len(images), splits * splits])
for i in range(amount):
    if(i%10 ==0):print(i, "/", amount)
    features[i] = splitMeanAngleFeatures(thumbs[i], splits)
    
    return numpy.sum(numpy.square(numpy.add(a, numpy.multiply(b, -1))))


def nearestNeighbour(xs, ys, x):
    bestIndex = 0
    bestDistance = distance(xs[0], x)
    for i in range(len(xs)):
        d = distance(xs[i], x)
        if d < bestDistance:
            bestIndex = i
            bestDistance = d
    return ys[bestIndex]


print("Loading images")
trainingImages, trainingClasses = loader.loadTrainingAndClasses()
testImages = loader.loadTest()
trainingAmount = len(trainingImages)
testAmount = len(testImages)

print("Making thumbnails")
size = 50
trainingThumbs = list(
    map(lambda x: misc.imresize(x, (size, size)), trainingImages))
testThumbs = list(map(lambda x: misc.imresize(x, (size, size)), testImages))

print("Calculating features")
#features = list(map(extractor.calculateNormalizedColorFeatures, images))
splits = 5
trainingFeatures = numpy.zeros([trainingAmount, splits * splits * 3])
testFeatures = numpy.zeros([testAmount, splits * splits * 3])