Commit 2c1bcb75 authored by unknown's avatar unknown

Made letterCropper non destructive on source image, created a new test

which combines all the tests
parent be937661
from copy import deepcopy
from Rectangle import Rectangle
class LetterCropper:
def __init__(self, image, threshold = 0.9):
self.set_image(image)
self.set_threshold(threshold)
def set_image(self, image):
self.image = image
def set_threshold(self, threshold):
self.source_image = image
self.threshold = threshold
def get_cropped_letter(self):
self.determine_letter_bounds()
self.image.crop(self.letter_bounds)
return self.image
self.result_image = deepcopy(self.source_image)
self.result_image.crop(self.letter_bounds)
return self.result_image
def determine_letter_bounds(self):
min_x = self.image.width
min_x = self.source_image.width
max_x = 0
min_y = self.image.height
min_y = self.source_image.height
max_y = 0
for y in xrange(self.image.height):
for x in xrange(self.image.width):
if self.image[y, x] < self.threshold:
for y, x, value in self.source_image:
if value < self.threshold:
if x < min_x: min_x = x
if y < min_y: min_y = y
if x > max_x: max_x = x
......@@ -38,4 +32,3 @@ class LetterCropper:
max_x - min_x ,
max_y - min_y
)
\ No newline at end of file
from GrayscaleImage import GrayscaleImage
from LocalBinaryPatternizer import LocalBinaryPatternizer
from LetterCropper import LetterCropper
from matplotlib.pyplot import imshow, subplot, show, axis
image = GrayscaleImage("../images/test.png")
lbp = LocalBinaryPatternizer(image)
lbp = LocalBinaryPatternizer(image)
feature_vector = lbp.create_features_vector()
feature_vector /= 255 # Prepare for displaying -> 0 - 255 -> 0 - 1
......
from GrayscaleImage import GrayscaleImage
from LocalBinaryPatternizer import LocalBinaryPatternizer
from LetterCropper import LetterCropper
from matplotlib.pyplot import imshow, subplot, show, axis
image = GrayscaleImage("../images/test.png")
cropper = LetterCropper(image)
cropped_letter = cropper.get_cropped_letter()
lbp = LocalBinaryPatternizer(cropped_letter)
feature_vector = lbp.create_features_vector()
feature_vector /= 255 # Prepare for displaying -> 0 - 255 -> 0 - 1
subplot(121)
imshow(image.data, cmap='gray')
subplot(122)
imshow(feature_vector, cmap='gray')
axis('off')
show()
\ No newline at end of file
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