Commit 5690b9e0 authored by Taddeus Kroes's avatar Taddeus Kroes

Added script that runs a given classifier and savesthe faulty classified images.

parent d76c71c3
...@@ -15,3 +15,4 @@ images/BBB ...@@ -15,3 +15,4 @@ images/BBB
images/Images images/Images
images/Infos images/Infos
images/licenseplates images/licenseplates
images/faulty
#!/usr/bin/python
from cPickle import dump, load
from sys import argv, exit
from pylab import imsave
import os
from Classifier import Classifier
if len(argv) < 3:
print 'Usage: python %s NEIGHBOURS BLUR_SCALE' % argv[0]
exit(1)
neighbours = int(argv[1])
blur_scale = float(argv[2])
suffix = '_%s_%s' % (blur_scale, neighbours)
test_set_file = 'test_set%s.dat' % suffix
classifier_file = 'classifier%s.dat' % suffix
print 'Loading classifier...'
classifier = Classifier(filename=classifier_file)
classifier.neighbours = neighbours
print 'Loading test set...'
test_set = load(file(test_set_file, 'r'))
l = len(test_set)
matches = 0
classified = {}
for i, char in enumerate(test_set):
prediction = classifier.classify(char, char.value)
if char.value != prediction:
key = '%s_as_%s' % (char.value, prediction)
if key not in classified:
classified[key] = [char]
else:
classified[key].append(char)
print '"%s" was classified as "%s"' \
% (char.value, prediction)
else:
matches += 1
print '%d of %d (%d%% done)' % (i + 1, l, int(100 * (i + 1) / l))
print '\n%d matches (%d%%), %d fails' % (matches, \
int(100 * matches / l), \
len(test_set) - matches)
print 'Saving faulty classified characters...'
folder = '../images/faulty/'
if not os.path.exists(folder):
os.mkdir(folder)
for filename, l in classified.iteritems():
if len(l) == 1:
imsave('%s%s' % (folder, filename), char.image.data, cmap='gray')
else:
for i, char in enumerate(l):
imsave('%s%s_%d' % (folder, filename, i), char.image.data, cmap='gray')
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment