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])