فهرست منبع

NormalizedCharacterImage classe aangemaakt, extend GrayscaleImage, blurd,
cropped, resized

unknown 14 سال پیش
والد
کامیت
301452225d
4فایلهای تغییر یافته به همراه17 افزوده شده و 23 حذف شده
  1. 3 3
      src/GrayscaleImage.py
  2. 7 8
      src/LetterCropper.py
  3. 5 5
      src/NormalizedCharacterImage.py
  4. 2 7
      src/combined_test.py

+ 3 - 3
src/GrayscaleImage.py

@@ -6,10 +6,10 @@ from scipy.misc import imresize, imsave
 class GrayscaleImage:
 
     def __init__(self, image_path = None, data = None):
-        if image_path:
+        if image_path != None:
             self.data = imread(image_path)
             self.convert_to_grayscale()
-        elif data:
+        elif data != None:
             self.data = data
     
     def __iter__(self):
@@ -40,7 +40,7 @@ class GrayscaleImage:
                               
     def show(self):
         imshow(self.data, cmap="gray")
-        #show()
+        show()
     
     def make_histogram(self):
         return hist(self.data)

+ 7 - 8
src/LetterCropper.py

@@ -1,25 +1,24 @@
 from copy import deepcopy
 from Rectangle import Rectangle
+from GrayscaleImage import GrayscaleImage
 
 class LetterCropper:
 
     def __init__(self, threshold = 0.9):
-        self.source_image = image
         self.threshold = threshold
         
-    def get_cropped_letter(self):
+    def crop_to_letter(self, image):
+        self.image = image
         self.determine_letter_bounds()
-        self.result_image = deepcopy(self.source_image)
-        self.result_image.crop(self.letter_bounds)
-        return self.result_image
+        self.image.crop(self.letter_bounds)
 
     def determine_letter_bounds(self):
-        min_x = self.source_image.width
+        min_x = self.image.width
         max_x = 0
-        min_y = self.source_image.height
+        min_y = self.image.height
         max_y = 0
 
-        for y, x, value in self.source_image:
+        for y, x, value in self.image:
             if value < self.threshold:
                 if x < min_x: min_x = x
                 if y < min_y: min_y = y

+ 5 - 5
src/NormalizedCharacterImage.py

@@ -12,7 +12,7 @@ class NormalizedCharacterImage(GrayscaleImage):
         self.size = size
         self.gausse_filter()
         self.increase_contrast()
-        self.crop()
+        self.crop_to_letter()
         self.resize()
 
     def increase_contrast(self):
@@ -23,9 +23,9 @@ class NormalizedCharacterImage(GrayscaleImage):
         filter = GaussianFilter(1.1)
         filter.filter(self)
         
-    def crop(self):
-        cropper = LetterCropper(self, 0.9)
-        self.data = cropper.get_cropped_letter().data
+    def crop_to_letter(self):
+        cropper = LetterCropper(0.9)
+        cropper.crop_to_letter(self)
 
     def resize(self):
-        self.resize(self.size)
+        GrayscaleImage.resize(self, self.size)

+ 2 - 7
src/combined_test.py

@@ -1,12 +1,7 @@
 from GrayscaleImage import GrayscaleImage
 from NormalizedCharacterImage import NormalizedCharacterImage 
-
-# Comment added by Richard Torenvliet
-# Steps in this test files are
-# 1. crop image 
-# 2. resize to default hight (in future also to width)
-# 3. plot
+from LetterCropper import LetterCropper
 
 image = GrayscaleImage("../images/test10.png")
 normalized_character_image = NormalizedCharacterImage(image)
-normalized_character_image.show()
+normalized_character_image.show()