Example #1
0
    def resize(self):
        """Resize the image to a fixed height."""
        if self.height == None:
            return

        h, w = self.data.shape
        GrayscaleImage.resize(self, (self.height, self.height * w / h))
Example #2
0
    def __init__(self, image=None, data=None, height=None, blur=1.1):
        if image != None:
            GrayscaleImage.__init__(self, data=deepcopy(image.data))
        elif data != None:
            GrayscaleImage.__init__(self, data=deepcopy(data))

        self.height = height
        self.resize()

        self.blur = blur
        self.gaussian_filter()
Example #3
0
def load_characters(neighbours, blur_scale, verbose=0):
    chars_file = 'characters_%s_%s.dat' % (blur_scale, neighbours)

    if exists(chars_file):
        print 'Loading characters...'
        chars = fload(chars_file)
    else:
        print 'Going to generate character objects...'
        chars = []

        for char in sorted(listdir(IMAGES_FOLDER)):
            count = 0

            for image in sorted(listdir(IMAGES_FOLDER + char)):
                image = GrayscaleImage(IMAGES_FOLDER + char + '/' + image)
                norm = NormalizedCharacterImage(image, blur=blur_scale, \
                                                height=NORMALIZED_HEIGHT)
                character = Character(char, [], norm)
                character.get_single_cell_feature_vector(neighbours)
                chars.append(character)

                count += 1

                if verbose:
                    print 'Loaded character %s %d times' % (char, count)

        if verbose:
            print 'Saving characters...'

        fdump(chars, chars_file)

    return chars
Example #4
0
def xml_to_LicensePlate(filename, save_character=None):
    plate = GrayscaleImage('../images/Images/%s.jpg' % filename)
    dom = parse('../images/Infos/%s.info' % filename)
    country = ''
    result = []
    version = get_node(dom, "current-version")
    infos = by_tag(dom, "info")

    for info in infos:
        if not version == get_node(info, "version"):
            continue

        country = get_node(info, "identification-letters")
        temp = by_tag(info, "characters")

        if not temp:  # no characters where found in the file
            break

        characters = temp[0].childNodes

        for i, char in enumerate(characters):
            if not char.nodeName == "character":
                continue

            value = get_node(char, "char")
            corners = get_corners(char)

            if not len(corners) == 8:
                break

            data = retrieve_data(plate, corners)
            image = NormalizedCharacterImage(data=data)
            result.append(Character(value, corners, image, filename))

            if save_character:
                character_image = GrayscaleImage(data=data)
                path = IMAGES_FOLDER + value
                image_path = "%s/%d_%s.jpg" % (path, i,
                                               filename.split('/')[-1])

                if not exists(path):
                    mkdir(path)

                if not exists(image_path):
                    character_image.save(image_path)

    return LicensePlate(country, result)
def xml_to_LicensePlate(filename, save_character=None):
    plate   = GrayscaleImage('../images/Images/%s.jpg' % filename)
    dom     = parse('../images/Infos/%s.info' % filename)
    country = ''
    result  = []
    version = get_node(dom, "current-version")
    infos   = by_tag(dom, "info")

    for info in infos:
        if not version == get_node(info, "version"):
            continue

        country = get_node(info, "identification-letters")
        temp    = by_tag(info, "characters")

        if not temp: # no characters where found in the file
            break

        characters = temp[0].childNodes

        for i, char in enumerate(characters):
            if not char.nodeName == "character":
              continue

            value   = get_node(char, "char")
            corners = get_corners(char)

            if not len(corners) == 8:
                break

            data  = retrieve_data(plate, corners)
            image = NormalizedCharacterImage(data=data)
            result.append(Character(value, corners, image, filename))

            if save_character:
                character_image = GrayscaleImage(data=data)
                path       = IMAGES_FOLDER + value
                image_path = "%s/%d_%s.jpg" % (path, i, filename.split('/')[-1])

                if not exists(path):
                  mkdir(path)

                if not exists(image_path):
                  character_image.save(image_path)

    return LicensePlate(country, result)
Example #6
0
#!/usr/bin/python
from GrayscaleImage import GrayscaleImage
from LocalBinaryPatternizer import LocalBinaryPatternizer

image = GrayscaleImage("../images/test.png")

lbp = LocalBinaryPatternizer(image)
histograms = lbp.create_features_vector()

print histograms
Example #7
0
 def get_filtered_copy(self, image):
     """Apply a gaussian blur to an image, to suppress noise."""
     image = gaussian_filter(image.data, self.scale)
     return GrayscaleImage(None, image)